Hallo, ich hab mal ne doofe Frage ^^ bin gerade an einem Projekt und wollte mal wissen ob es möglich ist 3 Lcd´s gleichzeitig mit dem Atmega32 anzusteuern, d.h. auf jedem Display etwas anderes anzeigen zu lassen. Programmiere mit CodeVision. Danke schon mal im Vorraus für die Antworten =)
So ein paar hundert Displays sind problemlos möglich, der Aufwand liegt nur in der Adressdekodierung für die einzelnen Displays. 3 Displays sind also problemlos möglich. Der Trick ist, die Datenbusse parallel zu schalten und die Enable-Leitungen getrennt anzusteuern.
Patrick Lehners schrieb: > ob es möglich ist 3 Lcd´s gleichzeitig mit dem Atmega32 anzusteuern Was für LCDs? So "normale" DOT-Matrix-Anzeigen oder passive/aktive STN/TFT...
Ohne zusätzliche ICs: 32 IO - 4 * Daten - 1 * RS = 27 Peter
wenn man für die enable leitugen noch schieberegister einsetzt ... werden es nochmal mehr
diese displays : http://www.pollin.de/shop/dt/MTczOTc4OTk-/Bauelemente/Aktive_Bauelemente/Displays/LCD_Modul_TC1604A_01.html Und danke schon mal für die ganzen Antworten. Ich bin ziemlicher Laie, gerade meine Ausbildung abgeschlossen und muss nochmal ne dumme Frage stellen ^^ was muss an die Enable-leitung ran ?
@ Patrick Lehners (Gast) >http://www.pollin.de/shop/dt/MTczOTc4OTk-/Baueleme... Ein Klassiker. >stellen ^^ was muss an die Enable-leitung ran ? http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung
^^ was muss an die Enable-leitung ran ? Der "Enable"-Eingang des Displays.
Gut soweit alles gecheckt, aber reicht es nicht wenn ich jetzt mit dem Wizard arbeite und halt für zum beispiel port b/c/d jedesmal ein lcd initialisiere ? sollte das dann nicht funktionieren ?
Da mußt Du mal in die Doku Deines Wizzard nachschauen. Ein Wizzard hat ein großes Problem, dessen Entwickler muß immer schlauer als der Benutzer sein. Er muß alle möglichen Funktionen vorhersehen und verfügbar machen. Aber keiner ist Supermann und daher wird in der Regel auf Wizzards verzichtet, sobald Programme über Anfängerniveau hinaus wachsen. Ein Wizzardentwickler sollte deshalb alle Funktionen auch als Sourcetext verfügbar machen, damit der Anwender sie modifizieren kann, wenn er nicht vorhergesehene Funktionen benötigt. Oftmals erzeugt ein Wizzard aber völlig unlesbaren Assembler, sodaß man dann doch die ganze Funktion selber schreiben muß. Für LCDs gibt es aber reichlich Beispielcode, den man modifizieren kann, z.B.: http://www.mikrocontroller.net/attachment/30300/lcd_drv.zip Peter
wenn du auf den Wizzard angewisen bist lass es bleiben, das wird nix der richtige weg ist: nimm dir ein LCD und schreib ein Programm das es initialisiert und Daten darauf ausgibt dann hast du das ganze verstanden und kannst auch mehrere LCD's ansteuern vlG Charly
Patrick Lehners schrieb: > gerade meine Ausbildung abgeschlossen und muss nochmal ne dumme Frage > stellen ^^ was muss an die Enable-leitung ran ? Beitrag "DDS 24 Bit in C?" Da hast du u.a. ein realisiertes reichlich kommentiertes Beispiel zur Displayansteuerung. LG Rudi
Hardwaremässig hab ich alles hinbekommen, aber ich weiss echt nicht weiter wie ich die lcds unterscheiden kann also unabhängig von einander was auf den ausgeben kann ... ich mein wenn ich jetzt lcd_gotoxy oder so benutze weiss der atmega doch gar nicht welches lcd gemeint ist ... bitte helft mir ^^
hab ich noch nicht digital, sobald ich es digital habe, werde ich das hier hochladen...dauert noch 1-2 tage
Patrick Lehners schrieb: > Hardwaremässig hab ich alles hinbekommen, aber ich weiss echt nicht > weiter wie ich die lcds unterscheiden kann also unabhängig von einander > was auf den ausgeben kann ... ich mein wenn ich jetzt lcd_gotoxy oder so > benutze weiss der atmega doch gar nicht welches lcd gemeint ist ... Das wurde bereits im ersten Posting erwähnt: die ENABLE-Leitung - das ist bei deinem Display Pin 6. Die sind i.d.R. Low-active, d.h. du musst dieses Pin auf GND ziehen (mit deinem µC), dann kannst du mit dem LC-Display reden. Wenn du mehrere ansteuern willst, brauchst du eben mehr ENABLE-Pins am µC. Achja, verabschiede dich von dem Gedanken mehrere Displays gleichzeitig anzusteuern. Du kannst jeweils nur eines bedienen, die anderen müssen warten. Da das ein µC recht schnell kann, sieht es so aus, als würden alle gleichzeitig angesprochen. Gruss Uwe
also mir ist klar dass ich sie nicht genau zur selben Zeit ansteuern kann das ist mir eigentlich auch egal ^^ reicht wenns 100 mikrosekunden später kommt. Ich sitze an einem Projekt für die FOS welches das Thema Verkehrkonzepte hat, wir wollen den LKW-Verkehr vom Individualverkehr trennen. Auf den LCD´s soll dann PKW oder LKW angezeigt werden Mein Plan war : LCD 1 : RS =PA0 R/W =PA2 E =PA1 DB4 =PA4 DB5 =PA5 DB6 =PA6 DB7 =PA7 LCD 2 : RS =PB0 R/W =PB2 E =PB1 DB4 =PB4 DB5 =PB5 DB6 =PB6 DB7 =PB7 LCD 3 : RS =PC0 R/W =PC2 E =PC1 DB4 =PC4 DB5 =PC5 DB6 =PC6 DB7 =PC7 Alle offenen Eingänge über Pull-Down-Widerstände(10k)auf Masse
Patrick Lehners schrieb: > LCD 1 : > ... > LCD 2 : > ... > LCD 3 : > ... Du verschwendest viel zu viele Pins. Du kannst alle Pins aller LCD parallel schalten. Nur jeweils die E Leitung jedes LCD muss ihren eigenen Pin haben. Es reagiert immer nur jenes LCD, über dessen E Pin der Übernahme-Puls kommt.
10K Pullup ist gängig, aber 10K Pull-Down? Warum legst du die nicht direkt auf Masse?
Anderer Plan: LCD 1 : E =PA0 LCD 2 : E =PA1 LCD 2 : E =PA2 LCD 1-3 : R/W =PC2 RS =PC3 DB4 =PC4 DB5 =PC5 DB6 =PC6 DB7 =PC7
Dein Plan ist suboptimal ;-) Du kannst alle Datenleitungen (DB4-DB7) mit einem Port bedienen (parallel schalten), sowie RS und R/W - dann benötigst du insgesamt nur einen Port. Dazu einen anderen Port für die "ENABLE" Leitungen und fertig.
Patrick Lehners schrieb: > Hardwaremässig hab ich alles hinbekommen, aber ich weiss echt nicht > weiter wie ich die lcds unterscheiden kann also unabhängig von einander > was auf den ausgeben kann ... > ich mein wenn ich jetzt lcd_gotoxy oder so Du musst deinen Displays eine Adresse geben und deine LCD Funktionen erweitern. Aus lcd_gotoxy(intx, int y) wird dann lcd_n_gotoxy(intx, int y, int LCD_num) > benutze weiss der atmega doch gar nicht welches lcd gemeint ist ... > bitte helft mir ^^
Und bitte Codemässig nicht so vorgehen, wie man es in solchen Fällen häufig sieht: Einfach alle Funktionen duplizieren (bei dir dann triplizieren) und dann gibt es ein lcd_init1 lcd_init2 lcd_init3 ein lcd_putchar1 lcd_putchar2 lcd_putchar2 ein lcd_gotoxy1 lcd_gotoxy2 lcd_gotoxy3 etc. etc. Man kann ruhig die Funktionen so aufbohren, dass man ihnen zusätzlich zu den normalen Parametern auch noch die LCD Nummer mitgibt. Eine lcd_init kann ruhig alle 3 LCD hintereinander initialisieren, etc. etc. Ein bischen mit Verstand an die Sache rangehen und nicht mit der Brechstange
du willst ja nur daten anzeigen und nicht lesen, also kannst du r/w auf 0V und nur E muss auf ver. Leitungen sein, alle unproblematisch so lange die Displays passiv sind. LCD 1 : RS =PA0 R/W =0V E =PB0 DB4 =PA4 DB5 =PA5 DB6 =PA6 DB7 =PA7 LCD 2 : RS =PA0 R/W =0V E =PB1 DB4 =PA4 DB5 =PA5 DB6 =PA6 DB7 =PA7 LCD 3 : RS =PA0 R/W =0V E =PB2 DB4 =PA4 DB5 =PA5 DB6 =PA6 DB7 =PA7
Uwe N. schrieb: > Dein Plan ist suboptimal ;-) > > Du kannst alle Datenleitungen (DB4-DB7) mit einem Port bedienen > (parallel schalten), sowie RS und R/W - dann benötigst du insgesamt nur > einen Port. > Dazu einen anderen Port für die "ENABLE" Leitungen und fertig. Beim parallelschalten der Datenleitungen beachten, das immer nur 1 Display enabled ist, sonst gibts beim Lesen Mist und Kurzschluss.
david schrieb: > du willst ja nur daten anzeigen und nicht lesen, .... Vorsicht bei kopierten Quellcodes ... es gibt genügend Initialisierungsroutinen für LCD, welche die Statusbits zurücklesen.
Das klingt ja schonmal besser = ) Dankeschön ^^ Jetzt hoffe ich mal dass ich das mit der LCD initialisierung ohne CV Wizard hinbekomme ^^ Wenn nicht meld ich mich nochmal = P
Winfried schrieb: > 10K Pullup ist gängig, aber 10K Pull-Down? Warum legst du die nicht > direkt auf Masse? BRING DEM JUNGEN DOCH KEIN SO QUATSCH BEI !!!! dann schaltet er so ein pin als ausgang und gibt H Pegel aus, wass dann ???? ( immer zuerst Hirn einschalten ( falls vorhanden :P ) ) vlG Charly
Charly B. schrieb: > dann schaltet er so ein pin als ausgang und gibt H Pegel > aus, wass dann ???? Es war von den 'offenen Eingängen' des LCD die Rede
Hallo, er redet doch vermutlich von den Displays bei seinen PullUps. Normalerweise haben die interne PullUp oder PullDown und D0...D3 bleiben im 4Bit-Mode einfach offen. Gruß aus Berlin Michael
Hi Das ist trotzdem Blödsinn, da die LCD-Controller interne Pull-Ups haben. MfG Spess
spess53 schrieb: > Das ist trotzdem Blödsinn, das allerdings. Denn wenn man die falsche Variante wählt, könnte es schwer werden, das LCD erst mal in den 4-Bit Mode zu bekommen.
es war von offenen Eingaengen die rede, es wurde nicht spezifiziert das es nur die vom LCD sind; genaugenommen hat er doch keine offene Eingaenge mit der beschaltung, sind alles I/O pins und sowas gehoert definitiv nicht auf Masse noch auf VCC oder sonst wohin wo der Strom unkontrollierbar ist (und jetzt nicht sagen er ist ja ueber das Ri der Netzteils begrenzt ;) ) vlG Charly
Ehhhm...^^ kann mir einer sagen wo dem atmega gesagt wird auf welchem port der atmega ist und welcher pin wofür zuständig ? Hab im Wizard ein Port angeklickt und dann kamen nur die beiden Textzeilen dabei raus die für das Display zuständig waren : #include <alcd.h> (...) lcd_init(16); dann dachte ich mir natürlich das wird irgendwo in der header festgelegt aber da hab ich nix brauchbares gefunden = /
fehler im text ^^ zeile 3 erste wort sollte lcd heissen ^^
Patrick Lehners schrieb: > Lcd´s Patrick Lehners schrieb: > LCD´s bitte hör mit den Deppenapostrophen auf.
Ich bastel jetzt seit 5 Stunden am Quellcode rum und komm einfach nicht dahinter wie ich lcd_init verändern kann bzw auf die enable-leitung zugreifen kann =/ hier mal mein quellcode den ich bis jetzt geschrieben habe: #include <mega32.h> #include <alcd.h> #include <delay.h> void lcd1(void) //Funktion für erstes Display { // Alphanumeric LCD initialization // Connections specified in the // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTB Bit 0 // RD - PORTB Bit 1 // EN - PORTA Bit 0 // D4 - PORTB Bit 4 // D5 - PORTB Bit 5 // D6 - PORTB Bit 6 // D7 - PORTB Bit 7 // Characters/line: 16 lcd_init(16); } void lcd2(void) //Funktion für zweites Display { // Alphanumeric LCD initialization // Connections specified in the // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTB Bit 0 // RD - PORTB Bit 1 // EN - PORTA Bit 1 // D4 - PORTB Bit 4 // D5 - PORTB Bit 5 // D6 - PORTB Bit 6 // D7 - PORTB Bit 7 // Characters/line: 16 lcd_init(16); } void main(void) { PORTA=0x00; //Definition der Ausgänge DDRA=0x00; PORTB=0x00; DDRB=0x00; PORTC=0x00; DDRC=0x00; PORTD=0x00; DDRD=0x00; while(1) { if(PIND.7==1) //PORT-Abfrage { lcd1(); //Aufruf der Funktion(LCD-INIT) Display 1 lcd_gotoxy(0,0); lcd_putsf("lcd"); } if(PIND.7==0) //PORT-Abfrage { lcd1(); delay_ms(50); lcd_clear(); } if(PIND.6==1) { lcd2(); //Aufruf der Funktion(LCD-INIT) Display 2 lcd_gotoxy(0,0); lcd_putsf("lcd"); } if(PIND.6==0) { lcd2(); delay_ms(50); lcd_clear(); } } }
so einfach geht das nicht. Schreib erst mal ein Programm in dem nur ein LCD vorkommt und bring das ans Laufen. Da such in dem Programm wo überall auf die E Leitung zugegriffen wird und schalte dann Displayabhängig auf die verschiedenen Ausgänge um.
Patrick Lehners schrieb: > zugreifen kann =/ hier mal mein quellcode den ich bis jetzt geschrieben > habe: Das Problem ist, dass du die in deinem Fall wirklich wichtigen Teile, nämlich die LCD-Funktionen eben NICHT selber geschrieben hast, sondern dass du das einem Wizard überlassen hast. Und der ist nicht darauf ausgelegt, dass man mit ihm 2 LCD ansteuert. Der kann das einfach nicht. Das musst du selber händisch machen, wobei du dich natürlich an dem was der Wizard generiert hat orientieren kannst. Aber du kannst das NICHT einfach 1:1 übernehmen.
Ja, aber für mich ist die Frage wie ^^ ich hab das in der Ausbildung nie gelernt ein Display selbst zu initialisieren, ich hab mir schon das Tut hier angeguckt aber werde da auch nicht richtig schlau draus was ich jetzt von den ganzen funktionen da brauche und wie ich festlege wo die enableleitungen angesteuert werden -.- mein kopf qualmt hier schon wie bekloppt = D Wenn ich den quellcode oben benutze ohne die funktion lcd2 dann funktioniert alles auch einwandfrei -.- aber sobald ein zweites dazu kommt, geht gar nix mehr xD
Patrick Lehners schrieb: > Ja, aber für mich ist die Frage wie ^^ ich hab das in der Ausbildung nie > gelernt ein Display selbst zu initialisieren, ich hab mir schon das Tut > hier angeguckt aber werde da auch nicht richtig schlau draus was ich > jetzt von den ganzen funktionen da brauche und wie ich festlege wo die > enableleitungen angesteuert werden -.- mein kopf qualmt hier schon wie > bekloppt = D Willkommen im Club. Dann wirst du dir die Init-Funktionen, die der Wizard generiert hat, mal zu Gemüte führen müssen und analysieren müssen. Aus dem Tut weißt du ja, was zu passieren hat. Jetzt musst du es nur noch im vom Wizard generierten Code wiederfinden. Sorry. Aber da musst du durch. Fremden Code analysieren zu können, ist eine der Grundfähigkeiten, die man als Programmierer lernen muss. Wobei du es sogar insofern leicht hast, weil du a) weißt, dass die Funktion funktioniert. und du b) sogar relativ detailierte Beschreibungen hast, was da konzeptionell passieren muss. Aber aus einem Code rauslesen, welcher Pin an welchem Port wo im Code angesteuert wird, das musst du alleine schaffen. Denn sonst brauchst du dich da gar nicht weiter in die Programmierung vertiefen sondern lieber jemanden anheuern, der seine Hausaufgaben gemacht hat und nicht von einem Wizard abhängig ist. > aber sobald ein zweites dazu > kommt, geht gar nix mehr xD Wie schon gesagt: du KANNST nicht einfach die vom Wizard generierten Funktionen benutzen. Du musst in diese Funktionen hinein und die abändern! Du kannst jetzt lcd_init aufrufen wie du lustig bist. Solange du die lcd_init selber nicht an deine spezifische Situation anpasst, wird das nie was. Ja! Da muss man sich die Hände schmutzig machen.
Ja das hab ich ja versucht, aber wo steht denn geschrieben was lcd_init beinhaltet ? ich hab die header-datei alcd.h geöffnet aber da war nur eine kurze deklaration von lcd_init -.-
Tja. Dann musst du suchen. Irgendwo muss die Funktion sein. In einer fertigen Lib kann sie nicht sein, denn dann würde man die Pinbelegung nicht mehr reinbringen. D.h. man könnte schon, aber dann würden deine Aufrufe nicht beide male lcd_init(16) bei abweichender Pinbelegung lauten.
junge, wie wärs mit nachdenken! du kannst dich noch so dumm stellen, dir wird hier niemand dein Zeug programmieren, nur helfen. Niemand hier hat gelernt, wie man ein ldc initialisiert. Das verrät einem das Datenblatt oder Referenzimplementierungen. Du hast das Glück, dass du beides hast. 1) du solltest wissen, dass es zu einer h-Datei meist auch eine c-Datei gibt. 2) du solltest wissen, dass dem Compiler auch die Implementierung (oder dem Linker ein entsprechendes Objekt) bekannt sein muss, damit eine ausführbare Datei erzeugen werden kann. wenn du das nicht weißt, solltest du die Mikrokontroller erst mal zu Seite legen und dich mit C und einer zugehörigen Toolchain auf dem PC beschäftigen, sonst hat das alles nämlich keinen Sinn. wenn du das weißt, dann sollte es kein Problem sein, das zugehörige Codefile zu finden. (vorausgesetzt, es wird nicht als fertig compilierte Bibliothek mitgeliefert)
@Vlad Tepesch : Danke für diese netten Kommentare von dir ; ) Tut mir leid dass ich mich mit C-Programmierung nicht allzu gut auskenne und den MC für ein Schulprojekt programmieren soll...
Vlad Tepesch schrieb: > wenn du das weißt, dann sollte es kein Problem sein, das zugehörige > Codefile zu finden. (vorausgesetzt, es wird nicht als fertig compilierte > Bibliothek mitgeliefert) Fertige Bib, denke wirds nicht sein. Hier hat er das Glück, dass man in sowas die Pinbelegung nur sehr umständlich reinbringt. Allerdings: Wenn ich nach einer gewissen Zeit die Funktionen nicht finde (was mit einem Debugger nicht allzuschwer sein sollte. Einfach im Single-Step hineinsteppen und der Debugger sucht mir das File), dann geh ich über zu Plan B: Scheiss auf den Wizard mit seinen LCD-Funktionen. Nehm ich halt frei verfügbare und bring die erst mal mit 1 LCD zum laufen. Dann hab ich die Funktionen und kann sie entsprechend ändern. Aber die Attitüde "Da hab ich einen Wizard und ansonsten will ich mir die Hände nicht schmutzig machen", die bringt einen nicht weiter.
CodeVisionAVR? bei den alten Versionen (bis v2.04) erfolgte die Portdefinition per Assembler. Wie im Headerfile auch nachzulesen war.
1 | BEFORE #include -ING THIS FILE YOU |
2 | MUST DECLARE THE I/O ADDRESS OF THE |
3 | DATA REGISTER OF THE PORT AT WHICH |
4 | THE LCD IS CONNECTED! |
5 | |
6 | EXAMPLE FOR PORTB: |
7 | |
8 | #asm |
9 | .equ __lcd_port=0x18 |
10 | .equ __lcd_cntr=0x18 |
11 | #endasm |
12 | #include <lcd.h> |
13 | [...] |
14 | #pragma used- |
15 | #pragma library lcd.lib |
Den Rest findet man wie zu erwarten in der lcd.lib. Ist schöner ASM-Code und einfach zu erweitern oder anzupassen. Bei der v2.05 dürfte der fragliche Inhalt vermutlich in alcd.lib zu finden sein. Diese Version kenne ich zwar nicht, aber so große Schritte hat HPInfoTech zwischen den Versionen eigentlich nie gemacht.
Patrick Lehners schrieb: > @Vlad Tepesch : Danke für diese netten Kommentare von dir ; ) > Tut mir leid dass ich mich mit C-Programmierung nicht allzu gut auskenne > und den MC für ein Schulprojekt programmieren soll... Und warum nimmst du dir dann ein Schulprojekt, von dem du im Vorfeld nicht schon weißt, dass du es stemmen kannst? Ehe ich einem Projekt zusage, klär ich doch erst mal ab (zb durch Vorversuche) ob ich das überhaupt hinkriegen werde und was es da alles zu tun gibt! Was denkst du, wie wir Auftragsangebote machen? Sicher nicht, indem wir dem Kunden in die hohle Hand hinein irgendwelche Dinge zusagen.
Haben wir zugeteilt bekommen .... ist ja jetzt auch egal, ich versuch das jetzt irgendwie hinzubekommen und dann ist gut, danke für die ganzen hilfreichen tipps =)
Patrick Lehners schrieb: > @Vlad Tepesch : Danke für diese netten Kommentare von dir ; ) man tut was man kann ;-P > Tut mir leid dass ich mich mit C-Programmierung nicht allzu gut auskenne > und den MC für ein Schulprojekt programmieren soll... wenn du mit Ski einen Rodelhügel im Park (der PC) noch nicht mal sicher runterfahren kannst, würdest du dann zum Skifahren in die Alpen (µC) fahren? Woher willst du denn im Fehlerfall wissen, ob der Fehler in der Programmlogik, der Ansteuerung der Peripherie oder in der Schaltung liegt.
Im Prinzip kann man sich mal Code für ein 4*40 LCD anschauen, das besteht nämlich aus 2 Stück 2*40 LCDs, d.h. es hat 2 E-Pins. Beitrag "LCD Treiber Routine 4*40" Eine Erweiterung auf 3 LCDs sollte dann einfach sein. Peter
Hey, ich bins nochmal, ich saß jetzt zwei Tage an dem Quellcode der angehängt ist, könnte sich den vllt mal jemand anschauen ? Und mir sagen ob ich auf dem richtigen Weg bin ? Weil iwie zeigt mir kein LCD was an -.- ausser die schwarzen Balken -.-
IMHO bist du schon viel zu weit gegangen. Ehe du dich auf 2 LCD stürzt, sieh zu, dass du mit dem Code (wo immer du den auch her hast) erst mal 1 LCD ansteuern kannst. Eines ganz alleine. Solange das nicht klappt, brauchst du gar nicht erst versuchen ein 2tes dazuzuhängen. Ein 2.tes LCD verkompliziert die Sache höchstens, macht sie aber nicht einfacher. Wenn es daher mit 1 LCD schon nicht klappt, wird es auch mit 2en nicht klappen. Und wenn du dann Code hast, der mit 1 LCD klar kommt, dann machst du kleine Änderungen am Code! zb erst mal nur die Initialisierung der beiden LCD. Keine Rundumschlagaktionen ala "Ich schreib jetzt erst mal alles um". Denn das kann nur ins Auge gehen!
Versuch das mal mit dem Anhang;)
Hi >Und mir sagen ob ich auf dem richtigen Weg bin ? Nicht so richtig. Was hast du an dem nicht verstanden: Beitrag "Re: Wie viel LCD´s kann man gleichzeitig mit dem Atmega32 ansteuern ?" >Weil iwie zeigt mir kein LCD was an -.- ausser die schwarzen Balken -.- Hast du überhaupt schon ein Display erfolgreich angesteuert? MfG Spess
Also, ein Display anzusteuern ist überhaupt kein Problem... Mein Problem ist dass ich auf 3 Displays verschiedene Sachen anzeigen will und dann kommt der Enable 2 und 3 mit ins Spiel und ich check gar nix mehr xD ich hab den Quellcode hier aus dem TuT und hab den dann 4 Stunden lang versucht umzuschreiben, ich glaub das ist auch gar nicht so falsch wasi hc gemacht hab ^^
Hi >ich glaub das ist auch gar nicht so >falsch wasi hc gemacht hab ^^ Z.B. >// Cursor in die 1. Zeile, 0-te Spalte >void lcd_home_1( void ); >void lcd_home_2( void ); >void lcd_home_3( void ); Drei Routinen! Mach eine draus: void lcd_home(... disp_nr ); (fehlt noch was. Kann kein C) Und das machst allen anderen Routinen auch. Wie willst du denn deine Routinen sonst vernünftig anwenden. Riesen case-Orgie? MfG Spess
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.