I needed a quick way to test hobby servos that didn't involve radios, etc. I had a PIC18F development board with an RS-232 port lying around, so I wrote a quick and dirty tester.
I'm providing the source (in PBP 3) and the .HEX file. It does require an 18F PIC with a hardware serial port and 16K or more of FLASH simply because it presents so much text to help the user. The serial port runs at 9600 N-8-1.
It produces 8 channels of PWM for the servos with a refresh rate of 50Hz (20 mSec). You can increase or decrease the pulse width with the "U" or "D" keys on the keyboard. D-T interrupts are used, and the ints are shut off when the registers are updated since the values are 16-bit.
All should be clear by looking at the source.
You can find the files at ServoControllerCL3.zip
www.charleslinquist.com/ServoControllerCL3.zip


Menu
Re: DT interrupt problem / K40 - "Priority State Not Found"
Yep, I found a "@ INT_DISABLE INT_INT" in a function in one of my include files (that I don't even use currently). After commenting it out, it compiled fine.
achilles03 - 23rd April 2026, 17:56Thanks!
Dave