|
ACS37041KLHBLT-030B5 Current Sensor Compact Carrier -30A to +30A, 5V |
|
ACS37041KLHBLT-010B3 Current Sensor Compact Carrier -10A to +10A, 3.3V |
|
24V, 4A Step-Down Voltage Regulator D42V55F24 |
|
Magnetic Encoder Pair Kit with Side-Entry Connector for 20D mm Metal Gearmotors, 20 CPR, 2.7-18V |
|
ACS37030LLZATR-065B3 Current Sensor Compact Carrier -65A to +65A, 3.3V |
|
TB67H453FNG Single Brushed DC Motor Driver Carrier |
|
ACS72981LLRATR-050U5 Current Sensor Compact Carrier 0A to 50A, 5V |
|
ACS37800KMACTR-030B3-I2C Power Monitor Carrier with Secondary I²C Isolation (Soldered Terminal Block) |
|
JST PH-Style Cable, 6-Pin, Female-Female, 10cm |
|
Pololu High-Power Stepper Motor Driver 36v8 |
Advanced hobby servo control using only a timer and interrupts
- 9 December 2013Thanks Jan. Yes, no point to let the MCU sitting around
-Katlv
Advanced hobby servo control using only a timer and interrupts
- 5 December 2013Thanks for the reply Jan.
Apologies for my bad English. Guess I was listening too much Japanese Songs XD. Yes, all the servo control pulses are done in an interrupt loop. So consider that a typical servo control pulse is in range from 0.5ms to 2.5ms. So the longest interrupt loop for controlling those servos is about 2.5ms. But u can reduce the idle time by at least 0.5ms becuase the only thing the MCU doing is set some pins high at the stating 0.5ms period. Therefore, what i did in my code is:
a) Start a new 20ms period, do the sorting and set all the needed pins.
b) put the minimal value into a Timer Counter waiting for the overflow and leave the interrupt.
c) Once the minimal pulse reach to its end, come back to the interrupt and start to reset everybody
Hope that helps. And thx again for your tutorial!
Advanced hobby servo control using only a timer and interrupts
- 4 December 2013Very nice tutorial! Thank you so much!!
Just one thought that you probably already implemented in your product. Since you have sorted all your pulse and know the minimal required time, u can release that time period to do other things. So here is how i implement it. 1) sort the pulse time. 2) write that minimum pulse (minus) some of that to variable. 3) put that variable into a Timer for overflow interrupt....