Hallo, ich habe ein problem mit dem Timer 1 des Mega 16. Ich möchte diesen im CTC Modus betreiben, und das Asuagngssignal am OC1A pin bei jedem Compare Match toggeln. Getaktet wird über einen 16Mhz Quarz. Ich hätte eine Frequenz von 1 Mhz an OC1A erwartet, jedoch bekomme ich ca. 15 hz. Wenn ich das OCR1A verändere und ein anderen TOP value hineinschreibe, ändert sich die Ausgangsfrequenz auch nicht. Weiss jemand woran das liegen kann? #include <avr/io.h> void main () { /* setze pin 1 und 6 als output */ DDRD |=(1<<PD5); DDRD |=(1<<PD0); /* setze Toggeln a OC1A bei compare match */ TCCR1A |=(1<<COM1A0); /* CTC mode setzen */ TCCR1A |=(1<<WGM12); /* presaclaer auf 8 */ TCCR1B |=(1<<CS11); /* 1 mhz */ OCR1A=0; for(;;) { } }
>> /* CTC mode setzen */ >> TCCR1A |=(1<<WGM12); Hier steckt der Fehler... das WGM12-Bit ist nicht im TCCR1A, sondern im TCCR1B! Gruß, Magnetus
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.