Hallo, ich habe schon wieder ein Problemchen. Und zwar möchte ich den 16 Bit Timer des Atmega 48 dazu bringen, den Interrupthandler aufzurufen. Folgendes habe ich eingestellt: TCCR1B |= (1<<CS11) | (1<<WGM12) ; OCR1A = 100; Wobei das WGM12 Bit in der Tabelle des Datenblatts unter TCCR1B steht, und in der Beschreibung unter der Überschrift TCCR1A. Jetz sollte er doch eigentlich wenn er bis 100 gezählt hat, sich aufrufen, oder? Beim Atmega 8535 habe ich es damit zum laufen gebracht: TCCR2 = (1<<CS20) | (1<<CS22) | (1<<WGM21); TCNT2 = 0; OCR2 = 15; Muss beim Atmega48 der TCNT1 Wert auf 0 zurück gesetzt werden oder wo liegt das Problem. Die Schaltung ist leider sehr schwer zugänglich, und von daher schwer zu flashen, da es einen extremer aufwand ist. Somit kann ich nicht alle 5 Minuten testen :/
Ach ja, der Interrupt Handler fehlt natürlich, den habe ich so geschrieben: ISR(TIMER1_COMPA_vect) { } Also weiß jemand wo das problem liegt?
Hi Und hast du auch in TIMSK1 den Interrupt freigegeben? MfG Spess
Oh man, ich hätte in der main() also nur TIMSK1 |= (1<<OCIE1A); reinschreiben müssen? Ok dann probiere ich es nochmal. Danke :)
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.