Hallo, habe mit dem Timer1 eines AtMega8 zu kämpfen. Ich möchte einen Phasen- und Frequenzkorrekten PWM mit Höchstgrenze MAX_TIM erzeugen. Jedoch fängt der Timer nicht wie erwartet an, ab erreichen von TCR1, wieder abwärts zu zählen, sonder läuft bei $FFFF über. Dies tritt in auch in der Simulation in AvrStudio auf. Habe testweise in der Simulation noch das Bit WGM10 gesetzt. Danach lief der Timer bei $00FF über. Muss ich eventuell irgendeine Initialisierungreihenfolge oder ähnliches einhalten? Ich weiss einfach nicht weiter :-( PS: Timerroutine in E-LAB ist für mich leider keine Option Ich initialisiere mit folgenden Quellcode(Ped32 E-LAB): MAX_TIM ist 1000 TCCR1A:=%00000000; //OC-Ausgänge Trennen TCCR1B:=%00010011; //Vorteiler 64 TCNT1H:=0; TCNT1L:=0; //Timer zurückstellen TCR1H:=HI(MAX_TIM); ICR1L:=LO(MAX_TIM); //Höchstgrenze sezten OCR1AH:=0; OCR1AL:=0; OCR1BH:=HI(MAX_TIM); OCR1BL:=LO(MAX_TIM); TCCR1A:=%11100000; Danke schonmal für die Hilfe Gruß Felix
> TCR1H:=HI(MAX_TIM); Das soll wohl heißen ICR1H:=HI(MAX_TIM); > Dies tritt in auch in der Simulation in AvrStudio auf. Und wo tritt es sonst noch auf?
Sorry, hatte wohl beim kopieren noch etwas am Quelltext geändert. (Das Register hat der Mega8 nicht) Hatte gestern noch weitergearbeitet. Bin mit anderem Vorteiler und $FFFF als obere Grenze auch über die Runden gekommen. Mittlerweile spielt die Simulation zwar immer noch verrückt, dafür klappt es jetzt in der Realität :-) und da kann mir die Simulation egal bleiben. Trotzdem Danke für dein wachsames Auge ;-) . Auch solche Fehler machen einen das Leben schnell schwer. Gruß Felix
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.