#include volatile uint16_t cnt16; volatile bool flag_500ms; // Timer ISR, must be adapted for Non-AVR Arduinos ISR( TIMER1_COMPA_vect ) { static uint8_t cnt; cnt++; cnt16++; if (cnt == 50) { cnt = 0; flag_500ms = true; } } int init_timer(int prescaler, uint16_t f_timer) { uint32_t tmp; uint8_t pre = 0; tmp = (F_CPU / ((uint32_t)prescaler * f_timer))-1; if (tmp > 65535) return 1; TCCR1A = 0; switch (prescaler) { case 1: pre = 1; break; case 8: pre = 2; break; case 64: pre = 3; break; case 256: pre = 4; break; case 1024: pre = 5; break; default: return 1; break; } TCCR1B = (1<