Commit Graph

25 Commits

Author SHA1 Message Date
Andrew Tridgell 6836a986f3 PeriodicProcess: switch to SREG = oldSREG pattern for interrupt mask/restore 2012-11-20 22:31:23 +11:00
rmackay9 35cb7ff7e5 AP_PeriodicProcessStub: fixed build due to missing reference to _suspended 2012-09-29 14:41:25 +09:00
rmackay9 c007a19200 AP_PeriodicProcess: added running() method which tells the caller whether the timer is suspended or not 2012-09-29 13:47:55 +09:00
rmackay9 00e79e7915 AP_TimerProcess: added simple example sketch 2012-09-29 13:23:51 +09:00
Andrew Tridgell 14b1674c3e PeriodProcess: fixed build warning 2012-09-25 07:10:35 +10:00
rmackay9 a75e93da06 AP_TimerProcess: add one additional slot for optical flow 2012-09-24 18:39:28 +09:00
rmackay9 55ef1e0a29 AP_PeriodicProcess: queue_process changes to suspend other processes before running queued process
Also restored suspend_timer to void return type
2012-09-10 11:37:58 +09:00
uncrustify d952af79cc uncrustify libraries/AP_PeriodicProcess/PeriodicProcess.h 2012-08-21 19:04:10 -07:00
uncrustify ded021fa11 uncrustify libraries/AP_PeriodicProcess/AP_TimerProcess.h 2012-08-21 19:04:09 -07:00
uncrustify a24d925f52 uncrustify libraries/AP_PeriodicProcess/AP_PeriodicProcessStub.h 2012-08-21 19:04:09 -07:00
uncrustify aa2afece16 uncrustify libraries/AP_PeriodicProcess/AP_PeriodicProcessStub.cpp 2012-08-21 19:04:09 -07:00
uncrustify 621fafe370 uncrustify libraries/AP_PeriodicProcess/AP_TimerProcess.cpp 2012-08-21 19:04:09 -07:00
Andrew Tridgell c8befe4536 AnalogSource: make the Arduino AnalogSource interrupt driven
this fixes several problems with reading analog sources:

 - we were getting poor values because we didn't wait long enough for
   an analog source to settle

 - we wasted a lot of CPU cycles waiting for conversions

 - we were not taking averages over many samples, which we did with
   the old AP_ADC driver on the APM1
2012-07-01 15:01:05 +10:00
Andrew Tridgell 534aee17e9 TimerProcess: added suspend_timer()/resume_timer()
this will be used to avoid races in driver initialisation
2012-05-01 12:06:54 +10:00
Randy Mackay ed19c25a97 Arduino 1.0 - changed all #includes of "WProgram.h", "wiring.h" and "WConstants.h to "Arduino.h".
Modified FastSerial's write function to return size_t (number of bytes written).
2012-01-28 12:25:47 +09:00
Andrew Tridgell e7dab19260 TimerProcess: prevent a race in setting up the timer callbacks 2011-12-28 16:00:49 +11:00
Andrew Tridgell 4d71482d1c TimerProcess: check for duplicate registrations
if a driver gets initialised twice, make sure it doesn't get called
twice in the timer loop
2011-12-28 16:00:48 +11:00
Andrew Tridgell dbaa6fb6d2 TimerProcess: make some variables uint8_t
save a couple of bytes
2011-12-28 16:00:48 +11:00
Andrew Tridgell 79d6c21dde PeriodicProcess: added set_failsafe() call
this adds an optional failsafe function that will be called in the
timer loop
2011-12-21 23:31:38 +11:00
Andrew Tridgell f6f808357c removed AperiodicProcess code
this code was never being used, and was more complex than it was
worth.
2011-12-17 07:29:09 +11:00
Andrew Tridgell c41e7c505b timer: enable interrupts during timer processing
this prevents us losing serial bytes when we call sensor drivers that
take more than 100usec to read.

We also prevent timer recursion by re-enabling the timer after all
callbacks are complete
2011-12-16 20:09:38 +11:00
Andrew Tridgell b484411c41 timers: change to 1kHz timer by default
we were using a 227Hz timer, which is far too slow
2011-12-16 20:09:25 +11:00
Pat Hickey 49ca774734 AP_PeriodicProcess: AP_TimerProcess can register multiple callbacks. 2011-12-11 15:21:10 -08:00
Pat Hickey d2a0bd35f4 hil-sensors: added stub libraries for InertialSensor and PeriodicProcess
* Also added dummy ivar to APM_BMP085_hil
2011-11-25 20:00:18 -08:00
Pat Hickey d288b8870d purple: added PeriodicProcess library
this library provides a clean API for drivers to request periodic
timer driven calls at whatever rate they need
2011-11-25 20:00:16 -08:00