switched up analogRead() loop to use the revamped millis() function rather than the private timer0_overflow_count variable

This commit is contained in:
Hans-Christoph Steiner 2008-09-12 16:53:57 +00:00
parent ad860f84d3
commit bf4484d02c
1 changed files with 5 additions and 4 deletions

View File

@ -32,8 +32,8 @@ byte pinStatus[TOTAL_DIGITAL_PINS]; // store pin status, default OUTPUT
byte portStatus[TOTAL_PORTS]; byte portStatus[TOTAL_PORTS];
/* timer variables */ /* timer variables */
extern volatile unsigned long timer0_overflow_count; // timer0 from wiring.c unsigned long currentMillis; // store the current value from millis()
unsigned long nextExecuteTime; // for comparison with timer0_overflow_count unsigned long nextExecuteMillis; // for comparison with currentMillis
/*============================================================================== /*==============================================================================
@ -204,8 +204,9 @@ void loop()
/* DIGITALREAD - as fast as possible, check for changes and output them to the /* DIGITALREAD - as fast as possible, check for changes and output them to the
* FTDI buffer using Serial.print() */ * FTDI buffer using Serial.print() */
checkDigitalInputs(); checkDigitalInputs();
if(timer0_overflow_count > nextExecuteTime) { currentMillis = millis();
nextExecuteTime = timer0_overflow_count + 19; // run this every 20ms if(currentMillis > nextExecuteMillis) {
nextExecuteMillis = currentMillis + 19; // run this every 20ms
/* SERIALREAD - Serial.read() uses a 128 byte circular buffer, so handle /* SERIALREAD - Serial.read() uses a 128 byte circular buffer, so handle
* all serialReads at once, i.e. empty the buffer */ * all serialReads at once, i.e. empty the buffer */
while(Firmata.available()) while(Firmata.available())