Warnung beim erstellen

Gast #1923141
Lesenswert?
• ▲
▼
Hi!

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

16
;____________________________________________________________________________________________________________________
17
ldi temp, HIGH(RAMEND)           ;HIGH-Byte der obersten RAM-Adresse
18
out SPH, temp
19
ldi temp, LOW(RAMEND)            ;LOW-Byte der obersten RAM-Adresse
20
out SPL, temp
21

22
ldi temp,0xff            ;Laden des Wertes 255 in Register R16  
23
out ddrd,r16
24
ldi temp,0b1111110            ;um das Daten Richtungsregister auf Ausgang zu stellen
25
out ddre,temp
26
ldi temp,0xff
27
sts ddrf,temp
28
;||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
29
;Hauptprogramm
30
haupt:
31
cbi oe_latch
32

33
sbi we_memory
34
sbi ce_memory
35
sbi oe_memory
36

37

38
ldi data,0x00;
39

40
ldi adress_low,0b00000000
41
ldi adress_high,0b00000000
42
weiter:
43
out portd,adress_low
44
sbi le_latch
45
cbi le_latch
46

47
out portd,adress_high
48

49
cbi we_memory
50

51

52
sts portf,data
53

54
cbi ce_memory
55
nop
56
nop
57
nop
58

59
sbi ce_memory
60

61

62
sbi we_memory
63

64
adiw    ZH:ZL, 1
65

66
inc data
67

68

69

70

71

72

73

74

75

76

77
; Baudrate einstellen
78
  ldi temp, LOW(UBRRVAL)
79
  out UBRR0L, temp
80
  ldi temp, HIGH(UBRRVAL)
81
  sts UBRR0H, temp
82
  ; Frame-Format: 8 Bit
83
  ldi temp, (0<<USBS0)|(3<<UCSZ00)
84
  sts UCSR0C, temp
85
  sbi UCSR0B,TXEN0 ; TX aktivieren
86
  loop: ldi temp, 'T'
87
  rcall serout ; Unterprogramm aufrufen
88
  ldi temp, 'e'
89
  rcall serout ; Unterprogramm aufrufen
90
  ldi temp, 's'
91
  rcall serout ; ...
92
  ldi temp, 't'
93
  rcall serout
94
  ldi temp, ' '
95
  rcall serout
96
  ldi temp, 'O'
97
  rcall serout
98
  ldi temp, 'K'
99
  rcall serout
100
  ldi temp, 10
101
  rcall serout
102
  ldi temp, 13
103
  rcall serout
104
  ldi temp, 10
105
  rcall serout
106
  ldi temp, 13
107
  rcall serout
108
  
109

110

111

112
rjmp weiter
113

114

115

116
;Hauptprogramm ende
117
;|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
118
;_______________________________________________________________________________________
119
  serout:
120
  sbis UCSR0A,UDRE0 ; Warten bis UDR für das nächste
121
  ; Byte bereit ist
122
  rjmp serout
123
  out UDR0, temp
124
  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
Gast #1923154
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.
:-)

Antwort schreiben

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.

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.