Assemblerdirektiven für IO-Register?

Gast #1267761
Servus,

Programmierumgebug ist AVR Studio, Assembler, Zielobjekt ein ATMega8.

Ich suche eine Möglichkeit, wie ich zum Beispiel "PORTB, 0" durch 
"Ausgang1" ersetzen kann.

Will nämlich möglichst einfach bei Bedarf nachträglich die Pinbelegung 
meiner IO-Ports ändern, ohne an sehr vielen Stellen im Quelltext 
rumzusuchen.

.def und .equ führten nicht zum Erfolg, komisch... ;)

Bliebe mir natürlich noch Suchen und Ersetzen, aber es gibt doch 
sicherlich einen komfortableren Weg?

Vielen Dank und Grüße,
Michael
Michael schrieb:

> Will nämlich möglichst einfach bei Bedarf nachträglich die Pinbelegung
> meiner IO-Ports ändern, ohne an sehr vielen Stellen im Quelltext
> rumzusuchen.
>
> .def und .equ führten nicht zum Erfolg, komisch... ;)

Warum nicht?
1
.include "m8def.inc"
2

3
.equ LED_PORT = PORTB
4
.equ LED_DDR  = DDRB
5
.equ LED_PIN  = PB4
6

7
     sbi DDRB, LED_PIN         ; am Led Port den Pin auf Ausgang stellen
8

9
loop:
10
     sbi LED_PORT, LED_PIN     ; den Pin auf 1
11
     cbi LED_PORT, LED_PIN     ; den Pin auf 0
12
     rjmp loop
Gast
Danke für die Antworten,

die Aufteilung in z.b. "PORTB" und "2" ginge natürlich schon...

Vielleicht schweif ich mal kurz aus:
Ich habe auf meiner Platine zum Beispiel zwei Ausgangspins nebeneinander 
liegen. Verdrahtet ist der eine z.b. auf PB0, der andere allerdings auf 
PC7.

Will ich nun beide softwaretechnisch vertauschen, muss ich also sowohl 
den Port als auch den Pin ändern.
Wenn ich nun die "Smbole" änder, auch für die Ports, sind die anderen 
Ausgangspins am Port B und C natürlich daneben. Also wieder im Quelltext 
korrigieren.

Deswegen hätt ich am liebsten eine Lösung, wo ich zum Beispiel
"AusgangA1 = PORTB, 0" definiere, und dann nur noch "sbi AusgangA1" 
schreiben muss.

Grüße,
Michael *der wahrscheinlich mal wieder voll auf dem Schlauch steht...*
Gast
Ja, mit
1
#define AusgangA1 PORTB,1
2
;...
3
SBI AusgangA1

funktionierts so wie gewünscht.

Vielen Dank für die Hilfe euch allen :-)


*auf #define wär ich wohl nie gekommen...*

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 17 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.