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...
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; |
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.
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.