Hallo Leute, bin am Programieren von einem LCD Display "KS108", so weit funktioniert schon alles! Wollte mal jetzt was ausprobieren aber geht leider nicht! Also ich hab eine Funktion gemacht die mir eine gerechnete Zahl asgeben soll und hier ist die fkt: unsigned int a, b, i, Gewicht=2543; unsigned char GWert[7]; a = Gewicht / 1000; b = Gewicht % 1000; GWert[0] = a; /*hier speichere ich den ersten Wert von a in den ersten feldelement. bei mir ist dann a=2 in diesem Schritt*/ GWert[1] = '.'; a = b / 100; b = b % 100; GWert[2] = a; a = b / 10; b = b % 10; GWert[3] = a; GWert[4] = b; GWert[5] = 'g'; GWert[6] = '\0'; lcd_text_pixel(50, 30, GWert); /*damit möchte ich den kompletten array ausgeben dann. wie ich mir das vorstelle muss dass 2.543g rauskommen*/ ..... wenn ich das Programm laufen lasse, kriege ich gar nichts auf dem LCD ausser den Punkt und den Character 'g' aber die variable a die normaler weise bei dieser Rechnung am ersten Schritt den Wert 2 hat...wird nicht ausgegeben! ich hab eine selber gemachte ASCII_Tabelle , da mein LCD kein eigenen Zeichensatz hat! Arbeite mit einem Atmega32 Es wäre super, wenn einer von euch eine Idee hätte.....! Gruss
void main(void) { unsigned char str[20]; int x; int y; int erg; x= 1; y=2; erg = x+y; sprintf(str,"%d", erg); init_lcd(); blank_lcd(); print_lcd(1,1,str); //ERG Ausgabe!!! } Bei dir musst du lediglich die sprintf - Funktion verwenden und dann den String "str" ausgeben mit deiner LCD-AUSGABE FUNKTION!!! Hoffe ich konnte weiter helfen!!! mfg Cri
Du kannst den String natürlich nennen wie du willst.In den "...." Zeichen musst du den Datentyp der auszugebenden Variable definiere (in meinem Beispiel eien Integer variable also %d!!!) Du müsstest deine Berechnung jedoch auf eine Variable reduzieren da du ja mit a und b rechnest!!! Nimm ne float variable!!da kannst du gleich nachkommastellen berechnen! z.B.: float erg,Gewicht=2543; erg=Gewicht/1000; sprintf(str,"%f", erg); lcd_text_pixel(50, 30, str); Ich denk mal dass das funzn müsste!!!
GWert[0] enthält den Wert 2. Deine Funktion lcd_text_pixel braucht aber zur Darstellung des Zeichens '2' den dazugehörogen ASCII-Wert. Der lautet 50. Entweder nimmst du, wie schon vorgeschlagen, gleich sprintf, oder du lässt deinen Code, wie er ist, und addierst lediglich zu den einzelnen Werten in GWert jeweils 48 hinzu. Oliver
Hi, ich danke euch, es hat ja geklappt mit dem letzten Vorschlag :-) Hab also 48 an GWert addiert! Danke Oliver
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.