Hallo zusammen, wenn ich folgendes Programm im AVR-Studio im Debugger laufen lassen verhält sich der Timer1 ganz und gar nicht wie in der Doku beschrieben. (Fehler in der Doku, Fehler im Debugger oder bin ich einfach zu blöd die Doku zu lesen und zu interpretieren ???) Ich möchte das der Timer1 beim Starten den OC1A-Pin (PD5) auf 1 zieht, dann beim Erreichen von OCR1A PD5 auf 0 zieht und dann beim Erreichen von ICR1 wieder auf 0 springt. Das sollte (wenn ich die Doku richtig lese) dieses Prg. machen: .include "m168def.inc" .def temp = r17 ldi temp, LOW(RAMEND) ; Stackpointer initialisieren out SPL, temp ldi temp, HIGH(RAMEND) out SPH, temp ; den Endwert (TOP) für den Zähler setzen ; der Zähler zählt bis zu diesem Wert ; (Natürlich braucht man bei 0x003F keinen 16-bit Timer, aber zum debugen einfach schneller..:-) ; ldi temp, 0x00 sts ICR1H, temp ldi temp, 0x3F sts ICR1L, temp ; ; der Compare Wert ldi temp, 0x00 sts OCR1AH, temp ldi temp, 0x1F sts OCR1AL, temp ; Den Pin OC1A (PD7) auf Ausgang schalten ldi temp, 1<<PD5 out ddrd, temp ; ; Timer 1 einstellen ; ; Modus 14: ; Fast PWM, ICR1 -> TOP ; ; WGM13 WGM12 WGM11 WGM10 ; 1 1 1 0 ; ; Timer Vorteiler: 8 ; CS12 CS11 CS10 ; 0 1 0 ; ; Steuerung des Ausgangsport: Set at BOTTOM, Clear at match ; COM1A1 COM1A0 ; 1 0 ; ldi temp, 1<<COM1A1 | 1<<WGM11 sts TCCR1A, temp ldi temp, 1<<WGM13 | 1<<WGM12 | 1<<CS11 sts TCCR1B, temp ; main: rjmp main Kann mir da jemand aufs Pferd helfen was ich falsch mache ?? Danke, Martin
> ; Den Pin OC1A (PD7) auf Ausgang schalten > ldi temp, 1<<PD5 Das ist erstens widersprüchlich und zweitens ist lt. meinem Datenblatt der OC1A an PORTB.1 und nicht an PORTD.5 oder 7...
johnny.m wrote: >> ; Den Pin OC1A (PD7) auf Ausgang schalten >> ldi temp, 1<<PD5 > Das ist erstens widersprüchlich und zweitens ist lt. meinem Datenblatt > der OC1A an PORTB.1 und nicht an PORTD.5 oder 7... hast natürlich recht.... (hab mich im Komentar verschrieben und mich im Programm mit dem ATMEGA16 Datenblatt vertudelt...*schäm*) Aber nichts desto trotz..... Kann der Simulator im AV-Studio nun nicht wirklich einen Timer im PWM-Modus simulieren oder hab ich bei der Parametrierung des Timers was falsch gemacht ? Gruss Martin
Hi AVR Simulator Help : Known Issues Timer/Counters 16-bit Timer/Counters on all devices have several problems with PWM, prescaler and output compare. Output compare registers are not buffered properly. MfG Spess
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.