mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Warnung beim erstellen


Autor: blutengel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Habe folgenden Code:
.include"m64def.inc"
;______________________________________________________________________________________________________________
.def temp      =   r16
.def adress_low    =  r30
.def adress_high  =  r31
.def data      =  r19
.equ CLOCK = 12000000
.equ BAUD = 9600
.equ UBRRVAL = CLOCK/(BAUD*16)-1
#define le_latch     PORTe,2
#define oe_latch      PORTe,3
#define ce_memory      PORTe,4
#define we_memory      PORTe,5
#define oe_memory      PORTe,6

;____________________________________________________________________________________________________________________
ldi temp, HIGH(RAMEND)           ;HIGH-Byte der obersten RAM-Adresse
out SPH, temp
ldi temp, LOW(RAMEND)            ;LOW-Byte der obersten RAM-Adresse
out SPL, temp

ldi temp,0xff            ;Laden des Wertes 255 in Register R16  
out ddrd,r16
ldi temp,0b1111110            ;um das Daten Richtungsregister auf Ausgang zu stellen
out ddre,temp
ldi temp,0xff
sts ddrf,temp
;||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;Hauptprogramm
haupt:
cbi oe_latch

sbi we_memory
sbi ce_memory
sbi oe_memory


ldi data,0x00;

ldi adress_low,0b00000000
ldi adress_high,0b00000000
weiter:
out portd,adress_low
sbi le_latch
cbi le_latch

out portd,adress_high

cbi we_memory


sts portf,data

cbi ce_memory
nop
nop
nop

sbi ce_memory


sbi we_memory

adiw    ZH:ZL, 1

inc data










; Baudrate einstellen
  ldi temp, LOW(UBRRVAL)
  out UBRR0L, temp
  ldi temp, HIGH(UBRRVAL)
  sts UBRR0H, temp
  ; Frame-Format: 8 Bit
  ldi temp, (0<<USBS0)|(3<<UCSZ00)
  sts UCSR0C, temp
  sbi UCSR0B,TXEN0 ; TX aktivieren
  loop: ldi temp, 'T'
  rcall serout ; Unterprogramm aufrufen
  ldi temp, 'e'
  rcall serout ; Unterprogramm aufrufen
  ldi temp, 's'
  rcall serout ; ...
  ldi temp, 't'
  rcall serout
  ldi temp, ' '
  rcall serout
  ldi temp, 'O'
  rcall serout
  ldi temp, 'K'
  rcall serout
  ldi temp, 10
  rcall serout
  ldi temp, 13
  rcall serout
  ldi temp, 10
  rcall serout
  ldi temp, 13
  rcall serout
  



rjmp weiter



;Hauptprogramm ende
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;_______________________________________________________________________________________
  serout:
  sbis UCSR0A,UDRE0 ; Warten bis UDR für das nächste
  ; Byte bereit ist
  rjmp serout
  out UDR0, temp
  ret ; zurück zum Hauptprogramm


Dortbekomme ich 2 Warnungen:

C:\Users\Happe\Documents\AVR 
Studio\speicher_latch\speicher_latch.asm(4): warning: Register r30 
already defined by the .DEF directive
C:\Users\Happe\Documents\AVR 
Studio\speicher_latch\speicher_latch.asm(5): warning: Register r31 
already defined by the .DEF directive
 Was bedeutet das. HAbe sie doch nur ein mal definiert.Woander wird es 
doch auch nicht benutzt oder doch?

MFG

blutengel

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
blutengel schrieb:
> Was bedeutet das. HAbe sie doch nur ein mal definiert.Woander wird es
> doch auch nicht benutzt oder doch?

In den includes zum Chip werden die Register r30/r31 bereits als ZL/ZH 
definiert, also sind das die Register, die den 16bit-Z-Pointer bilden.

Falls du den Z-Pointer nicht brauchst, kannst du die Warnung ignorieren.

Allerdings ist dein Programm dahingehend nicht konsistent, einmal 
benutzt du deine defines adresse_l und h, weiter unten dann adiw ZH:ZL, 
1
Am besten entscheidest du dich für eine Benennung.
:-)

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Am besten entscheidest du dich für eine Benennung.

Oder du verzichtest gleich ganz auf dieses def-Gedödel.

MfG Spess

Autor: blutengel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke habs jetzt rausgenommen und habe es mit ZH und ZL ersetzt.Kommt 
halt ein Kommentar dahinter.

MFG

blutengel

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.