www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Assembler - variable Portzuweisung mit .def


Autor: Jobst M. (jobstens-de)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin Gemeinde! :-)

Ich bewege mich ja nicht so häufig in AVR-Asm und habe damit ein kleines 
Problemchen:

Ich möchte Ports variabel definieren, damit ich bei einem Layoutredesign 
nicht das komplette Programm umschreiben muss.

Etwa so ... dachte ich - funktioniert so aber nicht
.def xyz = PORTD, 5

sbi  xyz

Jemand eine Idee?
Er motzt an dem Komma herum und das dort Müll am Zeilenende ist.
Gänsefüsschen und Escapen (Backslash) bringt nix ...
.def xyz_port = PORTD
.def xyz_pin = 5

sbi  xyz_port, xyz_pin

... bringt auch nichts ... (Er motzt sogar noch bei den Zuweisungen 
herum)


:-/


Gruß

Jobst

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
.def gilt nur für Register.
.equ ist für Zahlenwerte, Adressen usw gedacht, also auch für die PORTs 
(ist ja auch nur ne symbolische Adresse).

Ein Tip fürs nächste mal, schau einfach mal die "*def.inc" an, die du 
einbindest. Da sind die ganzen Ports definiert. :-)

Autor: Jobst M. (jobstens-de)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
  *Kopfschüttel* - Natürlich ...
.equ xyz_port = PORTD
.equ xyz_pin = 5

sbi  xyz_port, xyz_pin
... tut's


Das PORTD nur für eine IO-Adresse steht ist mir schon klar ;-)

Aber einzeilig geht's nicht ... :-/


Hmmm ... Macros fallen mir gerade noch ein ...



Gruß

Jobst

Autor: wewede (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
meine das ging so bin mir aber grad nicht sicher, lang kein asm mehr 
gemacht...
.equ xyz_pin = pind5

Autor: Jobst M. (jobstens-de)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wewede schrieb:
> meine das ging so bin mir aber grad nicht sicher, lang kein asm mehr
> gemacht...
> .equ xyz_pin = pind5

Nö, funktioniert nicht ...
Zwar beschwert er sich hier nicht, dafür dann aber in der Zeile
sbi xyz_pin


Vielen Dank

Jobst

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.