Guten Abend Ich habe da ein Prob mit nem Source-File! Ich bin grad dabei es zu studieren quasi zu sch<uen wie das Programm arbeitet. pwm_wert: ds 8 ;0-7 ldi r16,LOW(RAMEND) out SPL,r16 ldi r16,HIGH(RAMEND) ;Stack initislisiert out SPH,r16 ldi r16,1 out TCCR0,r16 ;Timer arbeitet mit CPU-Takt ldi r16,2 out TIMSK,r16 ;overflow INT freigeben ser r16 out DDRA,r16 ;PortA alle Ausgang ldi r16,16 sts pwm_wert+0,r16 ldi r16,32 sts pwm_wert+1,r16 ldi r16,64 sts pwm_wert+2,r16 ldi r16,128 sts pwm_wert+3,r16 So mein Assembler bringt Fehler! Ich schätze mal weil er mit pwm_wert+X nix anfnangen kann. Mit der Zeile "pwm_wert: ds 8 ;0-7 " kann ich auch nix anfangen was sie bewirken soll. Könnte mir jemand eventuell das erklären? Ich habe nur die Infos das "sts pwm_wert+3, R16" die Daten von R16 ins SRAM kopieren soll!
Hier ist der Fehler: pwm_wert: ds 8 ;0-7 Eine DS direktive gibts beim AVR ASM nicht die Zeile sollte so aussehen: pwm_wert: .byte 8 ;0-7
@mmerten Danke für die Erklärung, aber leider motzt der Assembler immer noch! Seh ich das richtig wenn ich sage das der Autor von diesem File erst einen Wert in R16 schreibt z.B. 16 und diesen dann auf den SRAM Speicherzelle 1 kopiert. Dann schreibt er 32 in R16 und kopiert diesen Wert dann auf Speicherzelle 2 des SRAM u.s.w.?? Wenn das richtig ist könnte ich ja die Speicherzellen des SRAM im Programm einfach durch Register R1-R4 ersetzen oder?
Ja, könnte hinkommen. Schau dir mal die Orginalen Dateien und include-Dateien an. Dort müsste pwm_wert irgendwo definiert sein. Gruß, Florian
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.