That is good to know… I would love to know more about the Debugging Support… That could be very Handy in EasyC…
Sometimes it’s the “Quick and Dirty” way to get it working… The thing is, with Interrupts and Multithreading, you Setup a Que, and have the Que emptied on a Regular Interrupt, so your not Slowing Everything Down continuing polling the Que…
If the Master Processor is also the SPI Master, then the User Processor might need an Interrupt to know when to feed the SPI Out Buffer. OTOH, I think I set up a 16 Byte Buffer, and filled it with a couple Messages, and there was a mechanism to transfer a Byte from the Buffer for each SPI Clocking… I will need to review that code…
That reminds me that my first Serial Que project, started in 1988, was an MS-DOS program that ran fine on 80286 and 80386 processors, but in Windows 3.0 or 3.1 on a 80386 at 19,200bps, lost characters…
There were many ways to solve this Issue, because I started with a vary Inefficient way of Coding, I had many choices for improvement… ![]()
I was using TurboC 2.02, I dumped the Interrupt Service Routine ( ISR ) in Assembler, and Hand Counted the Machine Cycles for the whole ISR… What I found was that since I chose to support Multiple Com Ports, and was loading the I/O Port Address from an Array, it was too slow for each pass through the ISR, which processed One 8 Bit Character, each pass. By switching the Com Port Base I/O Address from an Array Lookup, to a Pointer Lookup, I saved 15 Machine Cycles, per ISR pass…
The end result is it now worked great at 19,200 bps in a Windows 3.0/3.1 DOS Box…