Moin Moin, mal so ne frage, ich bin ziemlich neu beim Programmieren mit und ich habe bis jetzt leider noch nichts gefunden, wie ich in C daten an ein LCD übergebe, mit Assembler mache ich das so Text: db 'Text fuer LCD',0 und so wird es dann an das LCD übergeben: LCD_DB_Text: mov LCD_NZ,#000h LCD_DB_Text1: mov A,LCD_NZ movc A,@A+DPTR jz LCD_DB_Text2 mov LCD_Wert,A lcall LCD_Anz inc LCD_NZ sjmp LCD_DB_Text1 LCD_DB_Text2: ret Wie ich die übergabe an das LCD per C mache ist nicht schwer, jedoch was für mich schwerer ist, ist das mit der DB, wo der Text drin steht. Wer kann mir da helfen? =)
Hallo Alex, vorweg, warum nutzt Du nicht die Suchfunktion des Forums ? Schau mal hier : Das ist der Standart: Peter Fleury "LCD library for HD44870 based LCD" [1]; zumindest bei mir und einigen anderen. Peter PeDa hat auch eine sehr schnelle und kleine LCD Lib [2] geschrieben. Link: [1] http://homepage.hispeed.ch/peterfleury/avr-software.html [2] http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=102296
wenn noch genug ram vorhanden ist kannst du einfach schreiben lcd_send("Text fuer LCD"); lcd_send ist ann die funktion die das senden übernimmt (keine ahnung wie die bei dir heist) wenn aber der speicher knapp wird, dann musst du mit PROGMEM const char lcd_text[] PROGMEM = "Text fuer LCD"; // Flash und dann musst du eine lcd_funtion haben die mit lcd_text umgenen kann.
char *lcd_text="Text für LCD"; Bei einigen Compilern muss das vor jeglichen ->Funktionsaufrufen oder ->Kontrollstrukturen in einem ->Block stehen, und auch bei denen die anderes zulassen sollte man es der Kompatibilität wegen so halten. Nachtrag: das beschreibt nur wie man die Konstante anlegt, nicht wie man sie ausgibt. Const darf man auch davorschreiben; Vorsicht: Risiko von Missverständnissen siehe http://stackoverflow.com/questions/890535/what-is-the-difference-between-char-const-and-const-char
Andy D. schrieb: > Bei einigen Compilern muss das vor jeglichen ->Funktionsaufrufen oder > ->Kontrollstrukturen in einem ->Block stehen, und auch bei denen die > anderes zulassen sollte man es der Kompatibilität wegen so halten. Liegt es an mir, wenn ich davon jetzt nichts verstanden habe?
Wenn ich das verwende: const char lcd_text[] PROGMEM = "Text fuer LCD"; Dann bekomme ich immer ienen Fehler und zwar: missing ';' before 'PROGMEN' Jemand eine Idee?
Alex schrieb: > Dann bekomme ich immer ienen Fehler und zwar: dann wird es jetzt aber erstmal zeit das du uns sagst welche hardware und welchen compieler du verwendest.
Alex schrieb: > Jemand eine Idee? Lies das Manual zu Deinen ungenanten Compiler. PROGMEM ist nur für den AVR-GCC gültig. Es geht aber auch ohne explizite Flash-Zuweisung:
1 | lcd_send("Text fuer LCD"); |
Peter
Wenn da nicht vorher zu lesen wäre "avr" hätten die Stichworte Keil und Atmel hier so manchen auf den Holzweg geführt (da würde man einen 8051 annehmen!).
Andy D. schrieb: > die Stichworte Keil und > Atmel hier so manchen auf den Holzweg geführt (da würde man einen 8051 > annehmen!). Keil und Atmel kann aber auch ARM sein. Der Assemblercode oben ist aber eindeutig 8051. Peter
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.