Log in
Register
Home
Forums
New posts
Search forums
What's new
Featured content
New posts
New profile posts
Latest activity
News
Members
Current visitors
New profile posts
Search profile posts
Features
Log in
Register
What's new
Search
Search titles only
By:
Search titles only
By:
New posts
Search forums
Menu
Install the app
Install
Reply to thread
Home
Forums
Off Topic
The Basement
Copyright, Patent, General Intellectual Property Discussion (Branch from M32 Thread)
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Message
<blockquote data-quote="John Roberts" data-source="post: 115389" data-attributes="member: 126"><p>Re: New Midas M32 Console</p><p></p><p></p><p></p><p>back in my early (digital) days trying to generate sine waves with a 4 MHz 8-bit platform, I had to be very parsimonious about how many clock tics I used within the ISR. The modern stuff keeps getting better and better. </p><p></p><p>I think I may have just resolved my problem with my FFT... I was getting some off the wall completely random resilts, and just today realized that I was using a hardware based do loop inside my sine wave generating ISR. Starting a new DO loop when called away from another already running DO loop (inside the FFT) steps on the loop counter, thus the bogus results. </p><p></p><p>I guess i could just push and pop the DCOUNT register inside the interrupt call, but I just re-wrote the sine wave ISR to not use the hardware DO loop at all, It only costs me a couple instructions per loop. If the ISR gets tight for number of clock tics used (it isn't) I can revisit saving and restoring the DCOUNT register. </p><p></p><p>[edit] While I suggest people look elsewhere for assembly coding advice, I was not completely accurate. To save and restore a hardware do loop during an interrupt, you need to also push and then pop the DOSTARTL address and DOENDL address. 3 pushes and 3 pops is less clock overhead than 2 ops each loop for a loop that gets repeated 36x, so this saves some 70 clock tics during the ISR. Sorry, I'll take my musing about writing assembler off list now. [/edit]</p><p></p><p>I'm getting a stable result from the FFT now which is a very good start... and it tracks properly with my fake data.... <img src="https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png" class="smilie smilie--emoji" loading="lazy" width="64" height="64" alt=":-)" title="Smile :-)" data-smilie="1"data-shortname=":-)" /></p><p></p><p>JR</p><p></p><p>PS: I have considered buying stock in Arm Holdings (while P/E is a little high for my taste), since they seem to have the hot hardware platform these days. I cut my digital teeth on Microchip so am using them until they piss me off beyond recovery. I love their hardware, I do not love the lethargic customer support, and sketchy documentation. But i really love the hardware. It looks like Microchip has licensed some of their 32bit and higher MCU guts from Arm.</p></blockquote><p></p>
[QUOTE="John Roberts, post: 115389, member: 126"] Re: New Midas M32 Console back in my early (digital) days trying to generate sine waves with a 4 MHz 8-bit platform, I had to be very parsimonious about how many clock tics I used within the ISR. The modern stuff keeps getting better and better. I think I may have just resolved my problem with my FFT... I was getting some off the wall completely random resilts, and just today realized that I was using a hardware based do loop inside my sine wave generating ISR. Starting a new DO loop when called away from another already running DO loop (inside the FFT) steps on the loop counter, thus the bogus results. I guess i could just push and pop the DCOUNT register inside the interrupt call, but I just re-wrote the sine wave ISR to not use the hardware DO loop at all, It only costs me a couple instructions per loop. If the ISR gets tight for number of clock tics used (it isn't) I can revisit saving and restoring the DCOUNT register. [edit] While I suggest people look elsewhere for assembly coding advice, I was not completely accurate. To save and restore a hardware do loop during an interrupt, you need to also push and then pop the DOSTARTL address and DOENDL address. 3 pushes and 3 pops is less clock overhead than 2 ops each loop for a loop that gets repeated 36x, so this saves some 70 clock tics during the ISR. Sorry, I'll take my musing about writing assembler off list now. [/edit] I'm getting a stable result from the FFT now which is a very good start... and it tracks properly with my fake data.... :-) JR PS: I have considered buying stock in Arm Holdings (while P/E is a little high for my taste), since they seem to have the hot hardware platform these days. I cut my digital teeth on Microchip so am using them until they piss me off beyond recovery. I love their hardware, I do not love the lethargic customer support, and sketchy documentation. But i really love the hardware. It looks like Microchip has licensed some of their 32bit and higher MCU guts from Arm. [/QUOTE]
Insert quotes…
Verification
Post reply
Home
Forums
Off Topic
The Basement
Copyright, Patent, General Intellectual Property Discussion (Branch from M32 Thread)
Top
Bottom
Sign-up
or
log in
to join the discussion today!