Lösung: Arduino UNO millis

Vorbetrachtungen:

TC0 muss mit dem richtigen Prescaler versehen werden. Dazu muss das TCCR0B Register entsprechend beschrieben werden.

Bei einem Compare Match muss ein Interrupt ausgelöst werden. Dazu muss das entsprechende OCIE Bit im TIMSK0 Register gesetzt sein.

C-Quelltext:

#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdint.h>

volatile uint32_t millis = 0;

ISR(TIMER0_COMPA_vect)
{
	millis++;
	TCNT0 = 0;
}

int main(void)
{
	TCCR0B = 0b00000011;
	OCR0A = 199;
	
	TIMSK0 = 0b00000010;
	
	sei();
	
    while (1) 
    {
		
    }
}