MJoy Source Code in AVR Studio ?

Gast #263529
Lesenswert?
• ▲
▼
Hallo,

ich wollte mir mal einen MJoy aufbauen
http://www.mindaugas.com/projects/MJoy/Article.php

Da ich einige Kleinigkeiten dran ändern will - alle Potis weg, ich
brauch nur 8 Richtungstaster (2 Steuerknüppel) und 2 Feuertaster -
wollte ich den asm-Source in mein AVR Studio laden und eine Hex-Datei
erzeugen. Allerdings wimmelt es da nur so von Fehlern und Warnungen.

Z.B.
Register r28 already defined by the .DEF directive
(und noch viele andere Register)
error: Operand(s) out of range in 'ldi r21,0x8005'
und viele mehr.

Leider kenne ich mich mit AVR Studio / Assembler überhaupt nicht aus,
da ich alles mit WinAVR mache. Ich kenne mich aber durchaus mit den
Controllern ansich recht gut aus.
Kann mir da vielleicht jemand "Starthilfe" geben ?

Gruß
Stefan
#263530
Lesenswert?
• ▲
▼
Die Warnings wie "Register r28 already defined by the .DEF directive"
können ignoriert werden. Der error tritt AFAIK erst mit dem Assembler
Version 2 auf (kann man unter den Optionen einstellen). Du kannst auch
in der entsprechenden Zeile den rechten Operanden auf 8 bit kürzen,
also
"ldi r21,(0x8005 & 0xFF)".
Gast #263531
Lesenswert?
• ▲
▼
Hallo,

in den Optionen konnte ich eine derartige Einstellung leider nicht
finden. Immerhin hab ich bereits einige Redefinition-Errors
rausbekommen, z.B. UCR. Scheint wohl inzwischen in dieser inc Datei
schon drin zu sein.
Aber nun hab ich noch:

Joystick.asm(468): error: call k: Unsupported instruction on ATmega8

Und das ganze zig mal. Sieht so aus als ob der Assembler das Wörtchen
"call" nicht (mehr) versteht... Was kann ich tun ?

Stefan
#263532
Lesenswert?
• ▲
▼
Irgendwas ist bei Dir anders. Ich hab eben noch mal zur Kontrolle das
Original "mjoy_v1.1.zip" heruntergeladen, die drei Redefinitionen
auskommentiert, die Zeile 1426,
ldi  bitcount,CRC16poly
ersetzt durch
ldi  bitcount,CRC16poly&0xFF
und kompiliert. Hat funktioniert.
AVRStudio Version 4.12, build 460.
Gast #263533
Lesenswert?
• ▲
▼
ok,

inzwischen hab ich auch die Einstellung gefunden für assembler 1.

Ich kann den Code nun kompilieren (nennt man das so ?).
Ich hab aber noch warnings, u.a.

Joystick.asm(1332) : warning : 'CALL' not supported on this device

Kann man darüber hinwegsehen ? Klingt für mein Gefühl nicht gut...

Stefan

P.S. habe übrigens auch das AVRStudio 4.12 / 460
Gast #263536
Lesenswert?
• ▲
▼
z.B. hier

InitJoystickAxis:

    call  BackupUpperRegisters

    ldi r16, 0xFF
    sts  ADCChanStarted,r16  ; reset last ADC  channel number

    ldi r16, XAxisChannel  ;
    call ReadADC10
    ldi  ZH, high(XAxisRAM)
    ldi  ZL,  low(XAxisRAM)
    ldi  YH, high(XAxisEE)
    ldi  YL,  low(XAxisEE)
    call Init10SymAxis

sind schon mal einige drin...
ich versuch das mal mit dem rcall...

Stefan

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

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.