Timerproblem bei PWM?

Gast #60985
Lesenswert?
• ▲
▼
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
#60988
Lesenswert?
• ▲
▼
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
Gast #60989
Lesenswert?
• ▲
▼
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
Gast #60991
Lesenswert?
• ▲
▼
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

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.