millis() function returns the number of milliseconds the current sketch has been running since the last reset.
millis() returns an unsigned long.
#define MEASURE_INTERVAL 1000 // #define SEND_INTERVAL 16000 // unsigned long previous_millis_measure = 0; unsigned long previous_millis_send = 0; boolean measure_state = false; boolean send_state = false;
void loop(void) { unsigned long current_millis = millis(); if ((unsigned long)(current_millis - previous_millis_measure) >= MEASURE_INTERVAL) { measure_state = true; previous_millis_measure = current_millis; } if ((unsigned long)(current_millis - previous_millis_send) >= SEND_INTERVAL) { send_state = true; previous_millis_send = current_millis; } if (measure_state){ // == if true // measure something measure_state = false; } if (send_state){ // == if true // send something send_state = false; } }