Hallo Mit dem Code Vision Compiler einen Text am LCD anzeigen zu lassen schaff' mittlerweile sogar ich, aber wie kann ich z. Bsp einen String von der sereillen Schnittstelle als Dezimalzahl ans Display senden???? Bisher schaut das Programm so aus (ist nur das Beispielprogramm von code vision) // the LCD is connected to PORTC outputs // see the file lcd.h in the ..\inc directory #asm .equ __lcd_port=0x18 ;PORTD #endasm #include <lcd.h> // LCD driver routines #include <delay.h> #include <math.h> #include <stdio.h> void main(void) { unsigned char i; // initialize the LCD for // 2 lines & 16 columns lcd_init(16); // go on the second LCD line lcd_gotoxy(0,1); sprintf(lcd_buffer,"Device #%-u ROM\nCode is:",i+1); lcd_clear(); lcd_puts(lcd_buffer); // display the message lcd_putsf("Hello world"); // stop here while (1); } Wär's uper wenn ihr mir auf die Sprünge helfen könnt!! Danke Christian
Hallo von alleine bin ich leider immer noch nicht drauf gekommen, wie das gehen soll, aber das kann doch nicht sein, dass ihr nie irgendwelche Zahlen, die euch euer MC ausgerechnet hat am LCD anzeigen lassen wollt????? Kann doch nicht sein, dass auf euren LCD's immer nur "Hello World" steht.... mfg Christian
Hallo Christian, ich kann zwar C, bin aber in Bezug auf C in Mikrocontrollern ziemlich unbewandert. Schau dir aber einmal das Programm hier im Codeforum an: http://www.mikrocontroller.net/forum.php?action=read&forum=4&id=594 Es beschreibt zwar in Assembler wie man Zahlen auf dem Display ausgeben kann, aber ich denke das Grundprinzip ist auch in C uebertragbar: Zahl durch 10000, 1000, 100, 10, 1 einzeln teilen und die Zehnerpotenzwerte einfach mit dem "Offset" fuer ASCII-Zahlen addieren und nach der Reihe ans Display senden. Ich habe dieses Programm letztens fuer meine Zwecke umgeschrieben und finde es ganz gut. Viele Gruesse, Thomas H.
Ich weiss zwar nicht was dieser ganze Funktionsblock macht, aber die Funktion "sprintf" spricht doch wohl Bände! -- sprintf(lcd_buffer, "Device #%-u ROM\nCode is:", i+1); lcd_clear(); lcd_puts(lcd_buffer); -- Ich schätze mal dass "%-u" für den Integerwert steht (normal in C ist das anders) aber probier es einmal aus. Dieser Text wird dann in die Variable "lcd_buffer" geschrieben und die Zahl "i+1" eingesetzt. Daraus resultiert: "Device #1 ROM\nCode is:" Normalerweise würde das "\n" nen Linebreak verursachen, ob es beim LCD ebenso ist weiss ich nicht, probier mal das hier aus: -- sprintf(lcd_buffer, "Hier sollte 5 stehen: %-u", 10+10-15); lcd_clear(); lcd_puts(lcd_buffer); --
Hey - vielen lieben Dank!! Funktioniert tadellos!!!! Mit dem Code, den du da hergestellt hast (is ja ein Beispiel aus dem Codevision folder) hab' ich auch schon experimentiert - nur mit dem Problem, dass es bei mir nicht hingehauen hat. Vielen Dank Christian
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.