Untitled
unknown
plain_text
3 years ago
919 B
8
Indexable
#include <avr/io.h>
#include <avr/interrupt.h>
volatile unsigned int anzahlOverflows;
volatile unsigned int anzahlCompareMatches;
ISR(TIMER1_OVF_vect)
{
anzahlOverflows++;
}
ISR(TIMER1_COMPA_vect)
{
anzahlCompareMatches++;
OCR1A += 200;
}
int main(void)
{
unsigned int anzahlMainLoop = 0;
anzahlOverflows = 0;
anzahlCompareMatches = 0;
DDRB = 0xFF;
// Timer/Counter1 initialisieren
TCCR1B |= (1 << CS11) | (1 << CS10); // Prescaler 64 (Frequenzteiler)
TIMSK |= (1 << TOIE1) | (1 << OCIE1A); // Timer/Counter1 Overflow Interrupt und Output Compare Interrupt aktivieren
// Compare Match Register konfigurieren
OCR1A = 200; // Interrupt nach 200 Zählschritten auslösen
sei(); // Globale Interrupts aktivieren
while (1)
{
PORTB = anzahlMainLoop;
anzahlMainLoop++;
}
}
Editor is loading...