ASCII Zeichen auf Display ausgeben

Gast #1214052
Hallo ihr da draußen,

Ich bin grad dabei mit einem ATMEGA8 im 4bit-Modus Texte auf dem 
2zeiligen Display von Displaytech auszugeben. Das ist mir dann auch mit 
der übergabe von Hexadezimalzahlen gelungen und das Display hat das 
angezeigt was es anzeigen sollte. Jedoch bin ich jetzt dabei die Hexas 
in normale Buchstaben umzutauchen um später auch Zeichenketten bzw auch 
nur einzelne Zeichen verarbeiten zu können damit man nicht immer im der 
Tabelle nachschauen muss.

Also hab ich zum Beispiel den Befehl...

lcd_data(0x41);

mit dem Befehl...

lcd_data("A");

ersetzt.

Jetzt habe ich ab er das Problem dass nur noch total wirres Zeug 
angezeigt wird. Kann mir jemand sagen wo das Problem ist?

Infos:
-benutze das AVR-Studio mit dem GCC Compiler
-die Zechentabelle des Displays stimmt genau mit der ASCII Tabelle 
überein
-im Disamsambler hab ich gesehen dass jetzt eine andere Hexa an die 
Routine übereben wird

MFG Benny
#1214063
ben.pu wrote:

> Also hab ich zum Beispiel den Befehl...
>
> lcd_data(0x41);
>
> mit dem Befehl...
>
> lcd_data("A");
>
> ersetzt.

Und dein Compiler hat dazu nichts zu sagen?

> angezeigt wird. Kann mir jemand sagen wo das Problem ist?

Deine mangelnden C-Kentnisse.
"A" ist ein String, der in Summe aus 2 chars besteht. Aus dem 'A' und 
einem abschliessendem '\0' Zeichen, welches bei Strings obligatorisch 
ist.

'A' hingegen ist das Zeichen, dessen ASCII-Code 0x41 ist.

Man beachte die Unterschiede in den Anführungsstrichen:
doppelte Anführungszeichen - String
einfache Anführungszeichen - ein einzelner Character

Um Strings auszugeben kannst du zb diese Funktion benutzen
1
void lcd_puts( const char* String )
2
{
3
  while( *String )
4
    lcd_data( *String++ );
5
}

Da kannst du jetzt dein "A" ausgeben.
1
    lcd_puts( "A" );

aber auch
1
    lcd_puts( "Hallo World" );
Gast #1214071
Danke euch allen für die schnelle Hilfe!!!!!!
Es funktioniert und ich bin total HAPPY.
Hab meine C-Kentnisse aus nem Mikrocontrollerbuch und da wird das nich 
so ausgeweitet. Man lernt nie aus und zum Glück gibts ja auch ;-) Werd 
die Funktionen gleich einbauen...

Danke nochma!!!
Benny

PS: Der Compiler hatte kein Wort gesagt.

Antwort schreiben

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