Ich bin am verzweifeln :D Ich habe einen Atmega32u4 und möchte dessen Timer0 im CTC Mode bringen und über OCR0B (PinD0) ausgeben... aktuell:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
Der müsste doch laufen?! Die Register werden sonst nirgend woanders mehr beschrieben.
|
Anzeige
|
Atmega32u4 - Timer0 ProblemeIch bin am verzweifeln :D Ich habe einen Atmega32u4 und möchte dessen Timer0 im CTC Mode bringen und über OCR0B (PinD0) ausgeben... aktuell:
Der müsste doch laufen?! Die Register werden sonst nirgend woanders mehr beschrieben.
Gast
#4460289
muss man nicht noch den Prescaler und die Taktquelle einstellen? Sei() ist auch nicht zwingend notwendig Probiers mal mit OC0A, sollte gehen. Ja, mach ich ja über TCCR0B und CS00 auf eins... damit stelle ich den Prescaler auf "none" - die Taktquelle ist ja der externe Quarz. Muss ich den auch einstellen?! Nimmt er dies nicht "intern mit"? Ich kann über CS00, CS01, CS02 ja auch auf externe Taktquelle auf T0 Pin umstellen, aber dann nimmt er ja kein Prescaler mehr. Siehe Datenblatt: Atmel-7766I-USB-ATmega16U4/32U4-Datasheet_072015 S.99: "For generating a waveform output in CTC mode, the OC0A output can be set to toggle" Alexander S. schrieb: > Siehe Datenblatt: Atmel-7766I-USB-ATmega16U4/32U4-Datasheet_072015 > S.99: > > "For generating a waveform output in CTC mode, the OC0A output can be > set to toggle" Ja ist ja richtig, aber muss ja auch togglen wenn OCR0A nicht gesetzt ist. Dann zählt er bis 0xff, toggelt und fängt bei 0x00 wieder an. " The waveform generated will have a maximum frequency of fOC0 = fclk_I/O/2 when OCR0A is set to zero (0x00)" Ebenfalls auf der Seite 99 bissle unter deinem Satz. Was ich dir sagen wollte: CTC funktioniert nicht mit dem Register OCR0B und dem Pin OC0B. Nur A. Aaaaaber... dein Hinweis war dennoch gut, durch löschen der Zeile mit OCR0B gehts nun aber :D Was macht OCR0B... ich muss mal suchen :) Du hast jetzt in TCCR0A COM0A0 gesetzt? Alexander S. schrieb: > Du hast jetzt in TCCR0A COM0A0 gesetzt? Nein, ich hatte noch OCR0B gesetzt... das ist im Source oben nicht zu sehen... Quasi:
Nach auskommentieren von dieser Zeile funktionierte es nun dann auch und ich bekomme einen Takt an PinD0 (OC0B).
Gast
#4460346
Rene K. schrieb: > Alexander S. schrieb: >> Du hast jetzt in TCCR0A COM0A0 gesetzt? > > Nein, ich hatte noch OCR0B gesetzt... das ist im Source oben nicht zu > sehen... Quasi: Ohne Worte Rene K. schrieb: > Nach auskommentieren von dieser Zeile funktionierte es nun dann auch und > ich bekomme einen Takt an PinD0 (OC0B). Ist aber kein CTC, das funktioniert nur mit OCR0A. mohikaner schrieb: > Rene K. schrieb: >> Alexander S. schrieb: >>> Du hast jetzt in TCCR0A COM0A0 gesetzt? >> >> Nein, ich hatte noch OCR0B gesetzt... das ist im Source oben nicht zu >> sehen... Quasi: > > Ohne Worte ?!? Noch nie was im Code stehen gehabt wo man den Wald vor Bäumen nicht mehr gesehen hat!?! Alexander S. schrieb: > Rene K. schrieb: > >> Nach auskommentieren von dieser Zeile funktionierte es nun dann auch und >> ich bekomme einen Takt an PinD0 (OC0B). > > Ist aber kein CTC, das funktioniert nur mit OCR0A. OCR0A muss doch aber nicht zwingend gesetzt sein, CTC sagt doch noch nur "Clear Timer on Compare Match", dieser tritt doch auch ein wenn OCR0A = 0x00 ist. Da dann TCNT1 bis 254 durchzählt und wieder bei 0 beginnt, dann aber nicht mit OCR0A vergleicht sondern weiterzählt bis 254 - Wenn OCR0A aber 0x01 hat, da allerdings setzt der compare TCNT1 bei 0x01 zurück.
Gast
#4460834
Rene K. schrieb: > mohikaner schrieb: >> Rene K. schrieb: >>> Alexander S. schrieb: >>>> Du hast jetzt in TCCR0A COM0A0 gesetzt? >>> >>> Nein, ich hatte noch OCR0B gesetzt... das ist im Source oben nicht zu >>> sehen... Quasi: >> >> Ohne Worte > > ?!? Noch nie was im Code stehen gehabt wo man den Wald vor Bäumen nicht > mehr gesehen hat!?! Doch. Es wird aber immer wieder gebeten, den kompletten Code zu posten. Da wäre das sicher dem einen oder anderen aufgefallen. Für mich wieder ein Anlaß bei unvollständigen Angaben nicht tiefer zu schauen. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|