www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATMega8 AVR309


Autor: PeterJ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

ich bekomme die Firmware fürt den ATMega8 mit dem AVR Studio ums 
Verrecken
nicht übersetzt
Fehlermeldungen:

V:\AVR\USB\USBtoRS232.asm(29): Including file 'V:\AVR\USB\m8def.inc'
V:\AVR\USB\USBtoRS232.asm(182): warning: Register r26 already defined by 
the .DEF directive
V:\AVR\USB\USBtoRS232.asm(183): warning: Register r27 already defined by 
the .DEF directive
V:\AVR\USB\USBtoRS232.asm(184): warning: Register r28 already defined by 
the .DEF directive
V:\AVR\USB\USBtoRS232.asm(185): warning: Register r30 already defined by 
the .DEF directive
V:\AVR\USB\USBtoRS232.asm(973): error: Operand(s) out of range in 'ldi 
r21,0x8005'
V:\AVR\USB\USBtoRS232.asm(1851): No EEPROM data, deleting 
V:\AVR\USB\USB.eep

Irgendwelche Hinweise?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PeterJ schrieb:

> Irgendwelche Hinweise?

Die 'already defined' Meldungen stammen daher, dass diese Register auch 
als als Registerpärchen mit dem Namen X, Y und Z-Pointer bekannt sind. 
Das Include File definiert dafür bereits Namen.


Der
V:\AVR\USB\USBtoRS232.asm(973): error: Operand(s) out of range in 'ldi
r21,0x8005'

wie soll ein 16 Bit Wert 0x8005 in ein 8 Bit breites Register passen?

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Irgendwelche Hinweise?

-> 'ldi r21,0x8005' Das geht nicht. Ein Register kann nur 8 Bit 
aufnehmen.

Im Quelltext steht an dieser Stelle:

 ldi  bitcount,CRC16poly>>8  ;to bitcount CRC polynomial - high byte
 eor  temp1,bitcount    ;and make XOR from remains and CRC...
>ldi  bitcount,CRC16poly  ;to bitcount CRC polynomial - low byte
 eor  temp0,bitcount    ;and make XOR of remainder and CRC

Aus dem Kontext heraus würde ich sagen, die Zeile müsste so aussehen:

   ldi  bitcount,CRC16poly & $FF

MfG Spess

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
spess53 schrieb:

> Aus dem Kontext heraus würde ich sagen, die Zeile müsste so aussehen:
>
>    ldi  bitcount,CRC16poly & $FF

Oder überhaupt gleich so
    ldi  bitcount, HIGH( CRC16poly )  ;to bitcount CRC polynomial - high byte
    eor  temp1,bitcount    ;and make XOR from remains and CRC...
    ldi  bitcount, LOW( CRC16poly )   ;to bitcount CRC polynomial - low byte
    eor  temp0,bitcount    ;and make XOR of remainder and CRC

fände ich auch klarer in der B-Note

Autor: PeterJ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo


Vielen Dank für die Hilfe
Die Übersetzung hat jetzt geklappt


Gruß
Peter

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>fände ich auch klarer in der B-Note

Ich hatte mich etwas an dem C-angehauchten Syntax orientiert.

MfG Spess

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.