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
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" ); |
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.