Gast
#732105
Guten Abend,
schon seit Tagen versuche ich, einen 16 Bit Timer im CTC-Modus zum
Laufen zu bringen, der einen Takt von 1s geben soll. Leider bin ich bei
der Suche hier nicht wirklich fündig geworden bzw. sie hat mich noch
mehr verwirrt. Das ist das Erste mal, dass ich einen 16-Bit Timer
benötige, hab damit also noch keine Erfahrung.
Naja, daraus ist dann folgender Code entstanden, der aber leider keinen
Takt an den Ausgängen hervorbringt (Blinker).
Was muss ich noch machen, damit ich endlich einen Sekundentakt habe?
Vielen Dank!
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
SIGNAL (SIG_OUTPUT_COMPARE1A);
int main(void)
{
DDRD = 0b01100000;
TCCR1A = (1<<COM1A0) | (1<<COM1B0);
TCCR1B = (1<<WGM12) | (1<<CS12);
OCR1AH = 0x85;
OCR1AL = 0x5E;
TIMSK = (1<<OCIE1A);
sei();
for(;;)
{}
}
SIGNAL (SIG_OUTPUT_COMPARE1A)
{
if(PORTD == 0b01100000)
{
PORTD = 0b00000000;
}
else
{
PORTD = 0b01100000;
}
}