Wie im Titel schon erwähnt startet der Timer1 nicht. TCCR1A &= ~((1<<COM1A1) | (1<<COM1A0) | (1<<COM1B1) | (1<<COM1B0)); TCCR1A &= ((1<<WGM11) | (1<<WGM10)); TCCR1B |= ((1<<WGM12) | (1<<CS12)); TCCR1B &= ((1<<WGM13) | (1<<CS11) |(1<<CS10)); TIMSK1 |= (1<<OCIE1A); OCR1A = 15625; Prescaler 256 somit ergibt sich eine frequenz von 2Hz. Ich lasse mir den Timerwert in TCNT1 per seriel ausgeben. Dieser beträgt immer 0 also schließe ich daraus das der Timer nicht startet. Hat jemand eine Idee wodran das liegen kann? Der Timer0 ist genau so konfiguriert und läuft ohne Probleme.
Joschka T. schrieb: > TCCR1B |= ((1<<WGM12) | (1<<CS12)); > TCCR1B &= ((1<<WGM13) | (1<<CS11) |(1<<CS10)); Sicher? Oder ~ bei &= vergessen? Wenn du das so machst wie oben angegeben und TCCR1x vorher nicht initialisiert waren, dann steht in beiden hinterher immer noch 0x00 drin... > Der Timer0 ist genau so konfiguriert und läuft ohne Probleme. Das wage ich zu bezweifeln...
:
Bearbeitet durch User
Joschka T. schrieb: > TCCR1A &= ~((1<<COM1A1) | (1<<COM1A0) | (1<<COM1B1) | (1<<COM1B0)); > TCCR1A &= ((1<<WGM11) | (1<<WGM10)); Hier stimmt auch etwas nicht. Wenn du alle Bits löschen willst, schreibst du am besten
1 | TCCR1A = 0; |
:
Bearbeitet durch User
Warum überhaupt dieser Aufwand? Ich hätte gedacht:
1 | TCCR1A = 0; |
2 | TCCR1B = ((1<<WGM12) | (1<<CS12)); |
3 | TIMSK1 = (1<<OCIE1A); |
4 | OCR1A = 15625; |
OK danke jetzt sehe ich es. Wenn man stundenlang davor sitzt, sieht man was man will und nicht wie es tatsächlich ist Matthias S. schrieb: > Hier stimmt auch etwas nicht. Wenn du alle Bits löschen willst, > schreibst du am besten TCCR1A = 0; Da hast du auch rest. Sind wohl noch überreste vom umkonfigurieren.
:
Bearbeitet durch User
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.