Hallo, kann es sein, daß beim Programmieren der PWM (ATMega8) Probleme mit dem Timing auftreten können?. Als Einzelanwendung läßt sich PWM (Timer1,10bit,ohne Prescaler,8MHZ) problemlos aktivieren. Wenn PWM jedoch in eine etwas umfangreichere Schleife zur Abfrage mehrerer ADC-Ports zusammen mit einer Stoppuhr(Timer0)eingebaut wird,funktioniert zwar die Stoppuhr, jedoch nicht mehr PWM. Erst wenn viele Abfragen wieder gelöscht werden, die Stoppuhr jedoch belassen wird,funktioniert der PWM wieder. Kann mir jemand Tips geben?? mfg Helmut
Wenn Du Deinen Quellcode zeigst, vielleicht. So ist das Fischen im Trüben... Gruß, Frank
Timer: in temp,sreg ; Statusregister sichern push temp ldi temp, 150 ; Timer 0 auf 150 einstellen ... out sreg,temp pop temp reti Kein Wunder, das da nichts mehr geht. Du lädst temp mit sreg, ohne es vorher zu sichern. Dafür lädst Du am Ende sreg mit 150 und temp mit sreg. Und dann noch ein "rjmp Hauptlcd" mitten ausm Interrupt ist ein ganz böses Foul. Peter
Hallo Peter, wie sollte ich es denn deiner Meinung nach besser machen. Komisch ist, daß genau mit diesem Timercode ein anederes Ladegerät seit 2 Jahren einwandfrei funktioniert. gruß Helmut
"wie sollte ich es denn deiner Meinung nach besser machen." Erstmal das Tutorial lesen, mindestens aber das hier: http://www.mikrocontroller.net/tutorial/stack.htm http://www.mikrocontroller.net/attachment.php/677/Der-Stack-1.pdf Peter
Hallo Peter, vielen Dank für den Tipp. Ich habe das Programm Timer.asm hier aus dem Forum (Codesammlung) verwendet und modifiziert. Vermutlich ist mir dabei ein Fehler unterlaufen. Wenn ich alles richtig verstanden habe, muß die Interruptroutine etwa so aussehen: in temp, sreg push temp . . . pop temp out sreg,temp Wäre das so richtig, um das Statusregister zu sichern? gruß Helmut
Damit hast Du nur das sreg gesichert, das temp zerstörst Du aber immer noch. Kleiner Tip: Ich nehme für Interrupts und das Mainprogramm verschiedene Register, dann braucht man nur noch das sreg zu sichern und nichts weiter. Peter
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.