Hallo ! Ich schreibe gerade ein Programm für den Atmega88 in AVR Studio mit Assembler. Wollte gerade einen PWM-Timer schreiben, aber im Simulator von AVR zeigt der erweiterte Register OCR1A(L/H) keinen Wert an, ist das ein Fehler im Simulator oder mache ich was falsch ?? Ich beschreibe das Register ganz normal wie die anderen erweiterten Register, mit dem Befehl sts: sts OCR1AH, tmp1 sts OCR1AL,tmp2 Es funktioniert auch alles andere, aber nur in das Register kann ich nicht schreiben, hab schon im Datenblatt nachgelesen, da steht aber nichts spezielles bei den Registern. Ist das vielleicht nur ein Bug in AVR-Studio ?
Lass mich raten: du stellst den Timer erst auf PWM-Modus, und schreibst dann nach OCR1A. Im PWM-Modus wird ein neuer Wert für das OCR1A-Register nicht sofort übernommen, sondern nur an bestimmten Stellen des Timer-Durchlaufs, z.B. bei TOP. Du musst den Simulator weiter laufen lassen, bis dieser Punkt erreicht ist.
Gast: OUT - Store Register to I/O Location STS - Store Direct to data space OCR1AH/L - sind I/O Location, und kein data space.
Michael Fr. wrote:
> OCR1AH/L - sind I/O Location, und kein data space.
Beim ATmega88 liegt das Register nicht im per in/out erreichbaren
Bereich.
> Beim ATmega88 liegt das Register nicht im per in/out erreichbarem Bereich.
oops:) sorry :)
@Stefan Daran lags :) Hab den Simulator zwar öfter durchlaufen lassen bis zu TOP, aber er hat die Werte nicht übernommen, dann hab ich den AVR-Simulator (also nicht den AVR-Simulator 2) ausgewählt, bei dem gehts auch wenn man nach der PWM Konfiguration das OCR1A Register beschreibt. Beim simulator 1 funktionierts nur wenn mans vorher beschreibt. danke, lg
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.