define in AVR Studio ?

Gast #99583
Gibt es in AVRStudio Assembler eine directive mit der man z.B. portb.1
eine Bezeichnung geben kann ? Ich verwende so viele Bitfunktionen, da
komme ich immer durcheinander und so wäre es einfacher...
z.B.

define Clk = portb.0
define CE = portb.1
define WR = portb.2

In der Hilfe steht nur .equ (Zweisung von Zahlen) und .set (ist
irgendwie daselbe wie .equ oder habe ich da was falsch verstanden ?
Gast
drücke im editor von AVR-Studio mal auf F1 und gehe in der darauf
aufpoppenden Hilfe auf "Inhalt" und da auf "User's
Guide"->"Directives"
Was du brauchst ist .equ oder .set
Gast
Dachte ich auch, geht aber nicht:

Including  'C:\Programme\Atmel\AVR
Tools\AvrAssembler\AppNotes\8515def.inc'
C:\Programme\Atmel\AVR Tools\AvrStudio4\VideoGenerator.asm(73) :
error : Argument(s) missing or illegally delimited
C:\Programme\Atmel\AVR Tools\AvrStudio4\VideoGenerator.asm(74) :
error : Argument(s) missing or illegally delimited
C:\Programme\Atmel\AVR Tools\AvrStudio4\VideoGenerator.asm(78) :
error : Argument(s) missing or illegally delimited
C:\Programme\Atmel\AVR Tools\AvrStudio4\VideoGenerator.asm(81) :
error : Argument(s) missing or illegally delimited


.equ A8 = portb.0
.equ DSF = portb.1
.equ SEna = portb.2
.equ W = portb.3
.equ R = portb.4

.equ RSel0 = portc.0
.equ RSel1 = portc.1

Zeile 73ff:

cbi RSel0
sbi RSel1
out Daten, voll
nop
nop
cbi W
nop
nop
sbi W
nop
nop
Gast
So wirds auch nicht gehen. Es ist leider nicht vergleichbar mit dem
C-Präprozessor.

Hier mal ein Beispiel aus meinem Code:


.equ DISP_IO        = PORTB
.equ DISP_IO_DDR    = DDRB
.equ DISP_IO_PIN    = PINB

.equ DISP_IO_DATA    = 0
.equ DISP_IO_CLK     = 1

.equ DISP_IO_MASK  = 0b00000011


.equ DISP_CTL       = PORTB
.equ DISP_CTL_DDR   = DDRB
.equ DISP_CTL_PIN   = PINB

.equ DISP_CTL_CS    = 2
.equ DISP_CTL_E     = 3
.equ DISP_CTL_RW    = 4
.equ DISP_CTL_DI    = 5
.equ DISP_CTL_RESET = 6

.equ DISP_CTL_MASK  = 0b01111100


in R16, DISP_IO_DDR  ;IO-Port als Ausgang deklarieren
ori R16, DISP_IO_MASK
out DISP_IO_DDR, R16

in R16, DISP_CTL_DDR  ;CTL-Port als Ausgang deklarieren
ori R16, DISP_CTL_MASK
out DISP_CTL_DDR, R16

...

;Enable togglen
sbi DISP_CTL, DISP_CTL_E
cbi DISP_CTL, DISP_CTL_E

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 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.