sdcc und texte

Gast #948551
Hallo Leute, ich habe bisher nur Assembler und ein bisschen Bascom 
programmiert, und ich arbeite im Moment nur mit 8051 kompatiblen Chips. 
Ich habe nun ein Projekt mit USB anbindung vor und möchte deshalb mit 
dem 89C5131 von Atmel arbeiten. Da ich ein C-Newbee bin stehe ich 
bereits am Anfang vor einem Problem, bei dem ich Hilfe benötige. Der 
5131 hat u.A. ein EEPROM in dem ich ein paar Daten dauerhaft ablegen 
möchte. So u.A. auch die Displaysprache. Wie im Assembler will ich die 
Entsprechenden Texte im Code Bereich abspeichern
und folgendermassen aufrufen:

Lcd_out(1,1,dtext1);
Bedeutet: In der Zeile 1 an Position 1 soll der Text "dtext1" ausgegeben 
werden. Die Lcd Ausgabe funktioniert einwandfrei. Angenommen ich habe 
vier Zeilen a 16 Zeichen Text im Code Bereich gespeichert und danach 
direkt weitere 4 Zeilen a 16 Zeichen in einer anderen Sprache.
Wenn ich dann eine "Offset" Variable zum Aufruf hinzufüge, wie es beim 
Assembler funktioniert, klappt es beim SDCC nicht:

Lcd_out(1,1,dtext1+Offset);

funktioniert, wenn Offset = 0 ist. Ist Offset = 32 (oder auch 34 wegen 
der Nullterminierung des Strings) wird ein Text aus dem Nirwana 
angezeigt. Was mach ich bei der Adressierung falsch????????

Viele Grüsse Uli

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 18 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.