mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik define in AVR Studio ?


Autor: Alfons (Gast)
Datum:

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

Autor: Christof Krüger (Gast)
Datum:

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

Autor: Alfons (Gast)
Datum:

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

Autor: Christof Krüger (Gast)
Datum:

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

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.