www.mikrocontroller.net

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


Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: mmerten (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Florian Pfanner (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.