mikrocontroller.net

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


Autor: Martin (Gast)
Datum:
Angehängte Dateien:

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

Autor: Andreas K. (a-k)
Datum:

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

Autor: Martin (Gast)
Datum:

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

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht 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
lds tempX, ADCSRA
sbr tempX, (1 << ADSC) ;Achtung: sbr benutzt eine Bitmaske und keine Bitnummer!
sts ADCSRA, tempX

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

> in  temp0,ADCL
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...

Autor: Johannes M. (johnny-m)
Datum:

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

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Hilfe!
Läuft wunderbar!

Autor: Pz Pz (Firma: pz) (zed)
Datum:

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

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.