Forum: Mikrocontroller und Digitale Elektronik Verstehe diese Programm nicht! Bitte um Hilfe


von Andreas (Gast)


Lesenswert?

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!

von mmerten (Gast)


Lesenswert?

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

von Andreas (Gast)


Lesenswert?

@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?

von Florian Pfanner (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.