Error in AVR Studio

OP #1223126
Lesenswert?
• ▲
▼
hi@all,

habe ein problem mit dem avr studio:

1
;**********************************************************
2
.include "m8def.inc"  
3
  rjmp RESET     
4
;**********************************************************
5

6
RESET:
7

8
main:  ldi temp,low(RAMEND)  ; Stackpointer initialisieren
9
  
10
    out SPL,temp
11

12

13
programm:
14

15
  ldi  r16,0xFF
16
  out  DDRB,r16
17

18

19
  ldi  r16,1
20
  out  PORTB,r16
21
  
22
  ldi   r17,0xFF
23
  out  DDRC,r17
24

25
  in  r17,PINC
26

27
  or  r16,r17
28
  out  PORTB,r16
29

30
  rjmp  programm

wenn ich nun auf "build" gehe kommt imemr folgende fehlermeldung:

Desktop\Mikrocontroller\m8def.inc(323): error: Attempt to redefine 
keyword 'or'

woran liegt das? das or wird doch in der includedatei definiert?
Gast #1223181
Lesenswert?
• ▲
▼
abgesehen davon ein M8 hat mehr als 256 Byte RAM

>    ldi temp,low(RAMEND)  ; Stackpointer initialisieren
>    out SPL,temp


wenn Du schon ..... dann bitte auch den Hight-Teil.

Ist zwar jetzt, in dem Fall, nicht wichtig.
Aber behalte ein Auge drauf.

.. aber absolut sinnfrei (sinnlos):

>  ldi   r17,0xFF
>  out   DDRC,r17
>  in    r17,PINC

- Warum wird die Portrichtung in der Schleife jedesmal
  neu gesetzt ?
#1223190
Lesenswert?
• ▲
▼
Nimm bitte den Assembler 2, bei dem sollte das Problem nicht mehr 
auftreten! Der Fehler entsteht dadurch, dass in der .inc-Datei ein 
Steuerbit "OR" heißt. Und das kollidiert mit dem Befehl or. Stelle in 
den Assembler Options den Assembler 2 ein, und es werden die neueren 
.inc-Dateien benutzt, in denen das Bit "DOR" heißt. Den ollen Assembler 
1 sollte man gar nicht mehr benutzen.
OP #1223201
Lesenswert?
• ▲
▼
hallo johnny,

assembler 2 ist angewählt. problem hat sich erledigt, habe noch ne 
m8def.inc heruntergeladen und siehe da es geht.

@z8: sobald ich den high teil dazu mach bekomme ich folgende 
fehlermeldung:

Mikrocontroller\1.asm(14): error: syntax error, unexpected '('

jetzt hat er plötzlich ein problem mit der klammer? die ist doch im 
lowteil auch schon vorhanden.

1
;**********************************************************
2
.include "m8def.inc"  
3
rjmp RESET   
4
;**********************************************************
5

6
RESET:
7

8

9
.def temp = r16
10

11
main:    ldi temp,low(RAMEND)  ; Stackpointer initialisieren
12
      out SPL,temp
13

14
      ldi  r16,hi8(RAMEND)
15
      out  SPH,r16
16

17

18

19

20
richtung:
21

22
  ldi  r16,0xFF
23
  out  DDRB,r16
24

25
  
26
  ldi r17,0x00
27
  out  DDRC,r17
28

29
programm:
30

31

32
  ldi  r16,1
33
  out  PORTB,r16
34

35
  in  r17,PINC
36

37

38
  cp r16,r17
39

40
  breq step
41
  
42
  rjmp programm
43

44
step:
45

46
  ldi  r16, 0xFF
47
  out  PORTB,r16
48

49
  rjmp  step
Gast #1223223
Lesenswert?
• ▲
▼
Folgendes Rahmenprogramm würde ich verwenden:
1
        .INCLUDE "m8def.inc"
2
        .DEF  tmp=r16
3
        .CSEG
4
        rjmp  start
5
        .ORG  $2A
6
start:  clr   tmp;
7
        ldi   tmp,LOW(RAMEND)
8
        out   SPL,tmp
9
        ldi   tmp,HIGH(RAMEND)
10
        out   SPH,tmp
11
        ...

Mit einfach nur HIGH und LOW gehts.
Gast #1223230
Lesenswert?
• ▲
▼
>hab den 8er schon entfernt ;) problem aber dennoch vorhanden.

Habe mal die 8 entfernt und durch den AVR Ass. geschickt. Ohne Fehler!

Starte mal das AVR-Studio mit der rechten Mouse-Taste mit der
Option "als Admin ausführen". Danach sollte sich die Quelle
auch unter Vista mit dem AVR-Studio ass. lassen. :)
#1223233
Lesenswert?
• ▲
▼
Z8 wrote:
>>hab den 8er schon entfernt ;) problem aber dennoch vorhanden.
>
> Habe mal die 8 entfernt und durch den AVR Ass. geschickt. Ohne Fehler!
Was für ein Assembler soll das sein? Beim ATMEL-AVR-Assembler, der dem 
AVRStudio "beiliegt", heißen die beiden Dinger HIGH und LOW. Ein 
HI gibt es da nicht! tobi hat das schon korrekt gesagt...
OP #1223249
Lesenswert?
• ▲
▼
@johnny: dafür liegt deine schwäche heut abend beim richtig ablesen? 
;)Turbotoni dachte es könnte an dem 8er liegen. hab nur erwiedert das es 
daran nicht liegt --> siehe fehlermeldung!

@turbotoni: ja mit high gehts ;) ich wusste nicht das der befehl 
auschgeschrieben werden muss, hatte das grundgerüst von myavr 
rüberkopiert --> hi8.
#1223257
Lesenswert?
• ▲
▼
Ralph Müller wrote:
> @johnny: dafür liegt deine schwäche heut abend beim richtig ablesen?
> ;)Turbotoni dachte es könnte an dem 8er liegen. hab nur erwiedert das es
> daran nicht liegt --> siehe fehlermeldung!
Nein, ich habe schon ganz richtig gelesen. Siehe unten...

> @turbotoni: ja mit high gehts ;) ich wusste nicht das der befehl
> auschgeschrieben werden muss,
Eben. Wenn low ausgeschrieben wird, gibt es keinen logischen Grund 
dafür, high nicht auch auszuschreiben oder zumindest hig zu 
schreiben, damit beide die gleiche Länge haben. Deshalb meine obige 
Bemerkung. Das low stimmte ja, warum sollte es dann ein 
zweibuchstabiges hi geben? Es macht einfach keinen Sinn...

> hatte das grundgerüst von myavr rüberkopiert --> hi8.
Der GNU-Assembler macht das auch mit hi8 und lo8. Aber eben nicht der 
AVR-Assembler.
Gast #1223273
Lesenswert?
• ▲
▼
Hi Johannes M.,

das AVR-Studio läuft unter Vista nur mit diesem TIP richtig.
Ich bin kein Freund von Vista, aber muß mich mit dem ZEUG
Zuhause abfinden. (Tochter von 18a mit eigenem PC). Wenn ich
das Studio nicht so starte hagelt es Errors am laufenden Band.

Mit "Hi" und "High" hast Du natürlich recht, aber der Finger
ist schneller als der Zettel (Zwischenablage). :)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren