//create timing by timer0 overflow interrupt /* timer 1ms = 16000*62.5ns (16MHz) * 8 bit Timer --> Overflow after 256 clock cycles * Prescaler 1,8,64 * Overflow after 16us,128us, 1024us * * therefore Prescaler 64 used */ #include #define F_CPU 16000000UL //must be defined prior to delay.h #include #define A PORTB7 #define B PORTB6 #define C PORTB5 #define MAX 14 const uint8_t preloadValue = 6; // magic number for correct timing // use simulator to find out uint8_t signals[] ={0,0,1,1,1,6,4,4,4,4,4,4,0,0}; volatile uint8_t n; //Signalnr void setup(); int main(){ setup(); sei(); while(1){ } } ISR (TIMER0_OVF_vect){ PORTB = signals[n++]<<5; TCNT0 = preloadValue; n = n % 14; //periodic } void setup(){ DDRB |= (1<