www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Studio 4 "invalid character"


Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
bin blutiger Anfänger und wollt mir ein Programm aus dem Internet 
brennen. Soweit läuft alles bestens nur beim build prozess gibt Studo 4 
eine Fehlermeldung aus die ich nicht verstehe:
C:\$User\Daten\Microcontroller\AVR\sms\eversmith_0_56a\src\modem.asm(88) 
:  error: Invalid character: '
' (0x0d)

Im Code ist aber nirgens ein "]" (0x0d). Bleibt beim "ret"

ModemUartReadByteDTO:
  push r18
  ldi r18,MODDEFTO  ; UART timout-value
  call UART1ReadByteFIFO
  pop r18
->  ret

hängen. Im UART.asm hab ich auch nichts verdächtiges gefunden.
Habt Ihr eine Erklärung dafür? Wo beginnt die Suche?

Vielen Dank,
Gerhard

Autor: Lock Bit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was soll der Pfeil vor dem ret?

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Im Code ist aber nirgens ein "]" (0x0d)

Was lässt Dich annehmen, daß das Zeichen und der Code irgendwas 
miteinander zu tun haben?

"]" hat den ASCII-Code 0x5D

0x0d ist CR, der Zeilenvorschub.

Und davon hast Du in Deiner Datei 'ne ganze Menge, nämlich am Ende jeder 
Zeile.

Ist die Zeile mit dem ret zufälligerweise die allerletzte in Deiner 
Datei?

Dann klatsch dahinter mal ein paar Leerzeilen.

Autor: Lock Bit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für welchen Atmel ist das Programm?
Nicht alle haben den Befehl CALL.
Die wo ihn nicht haben heißt er RCALL.

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups,
da hab ich mich in der HEX Tabelle verschaut. Ist natürlich ein CR. Es 
handelt sich um einen AT mega16 und das command selbst wird in anderen 
Programmteilen erkannt. Aber wieso soll ein CR ein "invalid character" 
nach einem command sein. Das mit den Leerzeilen bringt leider auch nix. 
Schaut so aus:

; see UART.asm
ModemUartReadByteFIFO:
  call UART1ReadByteFIFO

  ret

; same with default timeout
ModemUartReadByteDTO:
  push r18
  ldi r18,MODDEFTO  ; UART timout-value
  call UART1ReadByteFIFO
  pop r18
  ret

;
;----------

usw.

Noch Ideen?
Danke

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fehlerpfeil im Studio 4 zeigt auf die Zeile untere Zeile mit dem "ret"

Autor: Lock Bit (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe deinen Programmschnipsel mal in mein Studio
eingegeben.

Es funktioniert. Keine Fehlermeldung.

Autor: Gerhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
danke für die Hilfe. Beim öffnen des Files mit Notepad war da wirklich 
ein Fehlerhaftes Zeichen. Im Studio war das leider nicht ersichtlich.

Grüße Gerhard

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.