Forum: Mikrocontroller und Digitale Elektronik error: Operand 1 out of range:


von Martin (Gast)


Angehängte Dateien:

Lesenswert?

Hallo!
Ich bin dabei, das MJOY Projekt (USB Joystick in ASM) auf einen ATmega88 
zu portieren.
Ich habe die Register wie in Atmels AVR094: Replacing ATmega8 by 
ATmega88 geändert und .include "m8def.inc" in .include "m88def.inc" 
geändert.
Jetzt treten aber mehrere Fehler in der Form
error: Operand 1 out of range:
z.B. bei folgendem Codestück auf:
;ADC enable, no start yet, Single Conversion mode, no interrupts
;set ADC prescaler to 12MHz / 64 = 187.5kHz

ldi  temp0, 0b10000110
out ADCSRA,temp0

Was kann ich dagegen machen?

von Andreas K. (a-k)


Lesenswert?

Port ist nicht mehr mit dem OUT Befehl adressierbar. STS verwenden.

von Martin (Gast)


Lesenswert?

Danke!
STS Klappt!
wie kann ich die anderen Befehle ersetzen?
Ich programmiere normalerweise in C...

sbi  ADCSRA, ADSC  ; start conversion

sbic  ADCSRA, ADSC

in  temp0,ADCL

und was mache ich mit GIFR und GIMSK welche beim m48 ebenfalls unbekannt 
sind? In der m8def.inc sind sie einfach als
.equ  GIMSK  =$3b
.equ  GIFR  =$3a
definiert.

von Johannes M. (johnny-m)


Lesenswert?

Martin wrote:
> Danke!
> STS Klappt!
> wie kann ich die anderen Befehle ersetzen?
> Ich programmiere normalerweise in C...
Steht das in der AVR094 nicht drin?

> sbi  ADCSRA, ADSC  ; start conversion
Das geht nicht mehr mit einem Befehl. Da muss
1
lds tempX, ADCSRA
2
sbr tempX, (1 << ADSC) ;Achtung: sbr benutzt eine Bitmaske und keine Bitnummer!
3
sts ADCSRA, tempX

> sbic  ADCSRA, ADSC
Siehe oben, nur eben cbr nehmen.

> in  temp0,ADCL
1
lds temp0, ADCL

> und was mache ich mit GIFR und GIMSK welche beim m48 ebenfalls unbekannt
> sind? In der m8def.inc sind sie einfach als
> .equ  GIMSK  =$3b
> .equ  GIFR  =$3a
> definiert.
Hab das jetzt auch nicht alles im Kopf, aber ich meine, es müsste durch 
EIMSK bzw. EIFR ersetzt werden...

von Johannes M. (johnny-m)


Lesenswert?

Johannes M. wrote:
>> sbic  ADCSRA, ADSC
> Siehe oben, nur eben cbr nehmen.
Sorry, muss natürlich sbrc heißen und nicht cbr... Und das 
Zurückschreiben mit sts kann natürlich auch weggelassen werden.

von Martin (Gast)


Lesenswert?

Danke für die Hilfe!
Läuft wunderbar!

von Pz P. (Firma: pz) (zed)


Lesenswert?

Hallo,

Sorry I don't speak German. Martin (Gast), do you have your converted 
mjoy.asm for ATmega88? I'm trying to convert the source to this micro 
too.
Did you use mjoy.asm v1.2 as your base?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.