Hi, ich bin momentan dabei für mein Graphik-Display diverse routinen zu schreiben. Ich hänge nun an einer Print_String routine. Die print_char klappt prima, nun versuche ich diese mit print_string aufzurufen und ein charakter nach dem anderen zu übergeben. Klappt jedoch leider nicht. Das Display giebt nur eine "8" aus. Den wichtigsten code hier: (den gesammten im dateianhang) void print_char (int c) { int i; for(i=0; i<5; i++) { send_data(Font5x7[((c - 0x20) * 5) + i]); current_line ++; } send_data(0x00); current_line ++; } void print_string(int *text) { int i; for(i=0; i<5; i++) { print_char(text[i]); } } [...] char text[32]; [...] text[0] ="Hallo"; set_pos(1,0); print_string(text); Villeicht hat jemand ne Idee und lust mir zu helfen. Danke!
Hallo Markus, ich bin zwar kein profi, aber ich glaube mich noch dunkel daran erinnern zu können, dass ein String nur bei der Definition an ein charrakterarray übergeben werden kann. Danach muss man den String in das char-array zeichenweise kopieren ( strcpy(); ). Der print_string-Routine übergibst du einen Zeiger vom typ "char". Geschrieben hast du jedoch "int". ( void print_string(char *text) ) Das müsste es eigentlich gewesen sein. MfG Freddy
So, Ich habe nun nach langem rumprobieren eine Lösung gefunden: void print_char (int c) { int i; for(i=0; i<5; i++) { send_data(Font5x7[((c - 0x20) * 5) + i]); current_line ++; } send_data(0x00); current_line ++; } void print_string(char *data) { int i,x; x = strlen(data); for(i=0;i<=x; i++) { print_char(*data); data ++; } } [..] char text[21] = "Ein superlanger Test"; print_string(text); Das Fuktioniert zwar, aber so ganz Glücklich binn ich noch nicht darüber. Weiss jemand wie die lcd_putsf Funktion von CodeVision AVR genau funktioniert? Da kann ich den string nämlich direckt mit dem Funktionsaufruf angeben. So: lcd_putsf("Das ist ein Test"); Das hätte ich auch gerne für mein Graphik-Display, bekomm es aber nicht hin. :-(
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.