www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MJoy Source Code in AVR Studio ?


Autor: Stefan Seegel (Gast)
Datum:

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

Autor: A. Dittrich (ad1)
Datum:

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

Autor: Stefan Seegel (Gast)
Datum:

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

Autor: A. Dittrich (ad1)
Datum:

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

Autor: Stefan Seegel (Gast)
Datum:

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

Autor: A. Dittrich (ad1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Häng doch mal Dein Codeschnipsel an. Wo sind denn da CALLs?

Autor: Michael Wolf (mictronics) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ändere alle "call"'s in "rcall"'s.

/Michael

Autor: Stefan Seegel (Gast)
Datum:

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

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.