Hallo, ich bin am verzweifeln ! Ich habe das MyAvr Usb Lcd Board und weiss nicht wie ich Daten ausgeben kann. Die lcdtest.hex funktioniert. Ich komme bloß mit dem umprogrammieren der Ausgangsports nicht klar. Ich bräuchte mal einen funktionierenden Quellcode in C den ich dann benutzen kann. MfG
Hallo, in der Anlage findest Du die von mir verwendete Bibliothek für den Anschluss an das myAVR-Board. Gruß Frank
Danke, genau das Habe ich gesucht ! eine Frage noch, wenn ich beim AVR Studio auf Build gehe um den hex-code zu aktualisieren sagt er immer:gcc plug-in: Error: Object file not found on expected location C:\Users\Tom Oehrke\Desktop\test\spannung\df\default\df.elf und erstellt ja dann die hex datei nicht, wie löse ich das problem ?
Fehler meinerseits, den obigen Beitrag einfach ignorieren. Aber andere Frage warum kann ich wenn eine Projektdatei öffne nicht auf Build Schaltfläche klicken um einen neuen hex-code zu erstellen ?
mal so ganz nebenbei wie wäre es wenn du versucht seber draufzukommen auch LCD routinen selbst zu schreiben der lerneffekt is verdammt riesig ... musst ich selbst feststellen
sicherlich ist es einfacher fertigen code zu nehmen oder fetige projekte einfach nachzubauen wenn man aber mal vor einem problem steht was kein anderer hat .. ist die frage groß und schwer ist es nicht fertigen C code herrumzukopieren das dieser im eigenen projket läuft
Hallo, Ich weiß dieser Thread ist schon etwas älter, aber ich finde den für mich am passendsten. Wie es hier schon kurz angesprochen wurde, lernt man am besten wenn man es selber macht. Also habe versucht ich einen Code zur Initialisierung selber zu schreiben mit dem MyAVR Board MK2 USB und dem myAVR LCD v2.5. Und, man kann es schon erahnen, es funktioniert nicht so recht bis gar nicht. Bin ein neuling in C und habe eigentlich nur die Grundsachen drauf. Bin mir beim Ablauf nicht so 100% sicher. Habe mich an das PAP von der technischen Beschreibung gehalten. (Seite 11) http://www.myavr.info/download/produkte/lcd/techb_lcd_de_en.pdf Kann aber mit dem LCD_cmd nichts anfangen bzw. weiß nicht die Funktion und und den Sinn und hab es deswegen auch nicht eingebaut. Programmiere mit dem neusten AVR-Studio. Wäre schön, wenn mir jmd helfen könnte. Gruß Christian
hallo... zum myAVR LCD gibts was http://myavr.info/myForum/viewtopic.php?t=63&postdays=0&postorder=asc&start=15 oder schaust gleich hier: http://www.linux-empire.de/ucontroller.php
Hey danke für den Link. Werde mir das Programm mal in Ruhe anschauen. Allerdings schaffe ich das heute nicht mehr. Hatte einen ähnlichen Code verwendet (vllt das Original?), und der hat auch funktioniert. Nur konnte ich diesen Code zu meinem eigenen Verständnis nicht nachvollziehen. Auch war er für mich als Anfänger und für mein Empfinden, doch sehr unübersichtlich und manche Befehle sagen mir auch gar nichts. Außerdem ist doch ein eigener Code, wenn auch mit etwas Hilfe, doch immer am schönsten und für den Lerneffekt durchaus nützlich. Aber wie gesagt, ich werde mir den Code morgen früh mal in aller Ruhe anschauen, vllt kann ich da was nachvollziehen und anwenden. Wäre froh wenn sich morgen vllt jmd wieder um meine Fragen kümmern könnte. Schönen Abend noch! Gruß Christian
Christian schrieb: > Außerdem ist doch ein eigener Code, wenn auch mit etwas Hilfe, doch > immer am schönsten und für den Lerneffekt durchaus nützlich. Im Prinzip schon. Nur ist die Ansteuerung eines LCD nicht unbedingt trivial wenn man das noch nie gemacht hat. Von daher macht es Sinn zunächst vorhandenen, funktionierenden Code im Detail zu studieren.
Guten Morgen, habe mir den Code jetzt mal angeschaut und wirklich nachvollziehen kann ich ihn im Detail nicht. Die grobe Struktur habe ich rauslesen können. Nur er ist meiner Meinung nach, sehr komliziert mit den vielen Unterprogrammen. Habe zum Verstaändnis aber ein paar Fragen, vllt blicke ich dann da besser durch. Die erste ist, dass ich gelesen habe, dass man das Display nach der Selbstinitialisierung 3-mal in den 8-Bit-Modus setzen soll, bevor man es in den 4-Bit-Modus setzt. Ist das hier weggelassen oder habe ich das übersehen?
1 | void lcd_init(void) |
2 | {
|
3 | // Port D = Ausgang
|
4 | DDRD=0xff; |
5 | PORTD=0; |
6 | // warten bist LCD-Controller gebootet
|
7 | wait_ms(200); |
8 | // 4-BitModus einschalten
|
9 | PORTD=0x20; |
10 | // Schreibsignal
|
11 | PORTD |= (1<<3); //sbi(PORTD,3); |
12 | PORTD &= ~(1<<3); //cbi(PORTD,3); |
13 | wait_ms(5); // Zeit zum Umschalten lassen |
14 | // ab hier im 4-Bit-Modus
|
15 | lcd_cmd(0x28); // Funktions-Set: 2 Zeilen, 5x7 Matrix, 4 Bit |
16 | //lcd_off();
|
17 | lcd_cmd(0x06); // Entry Mode |
18 | lcd_on(); |
19 | lcd_clear(); |
20 | }
|
Hier wird doch dirket in den 4-Bit-Modus geschaltet, nach dem das Dispaly sich selbst initialisiert hat. Weitere Fräge wäre was den |= und &= bedeuten. Kommen in meinen Blättern über die Grundbefehle in C, welche ich mir besorgt habe nicht vor.
Christian schrieb: > Weitere Fräge wäre was den |= und &= bedeuten. Kommen in meinen Blättern > über die Grundbefehle in C, welche ich mir besorgt habe nicht vor. Besorg dir andere "Blätter über die Grundbefehle in C". Die Bitoperatoren und kombinierte Zuweisungen sollten drin erklärt sein. Alternativ: Bitmanipulation und http://de.wikibooks.org/wiki/C-Programmierung:_Ausdr%C3%BCcke_und_Operatoren#Kombinierte_Zuweisungen
Weils gerade aktuell ist: Beitrag "Buch für 0 €: C/C++ Referenz Studienausgabe (zzgl. Versand)" Oliver
Danke Steffan für den Link. Hat etwas Licht ins dunkle gebracht. Allerdings sind mir viele Sachen weiterhin unklar bzw nicht nachvollziehbar wie in dem Programm gesprungen wird. Hab es mal versucht mit dem AVR-STudio debugger nachzuverfolgen aber helfen kann der mir auch nur begrenzt. Langsam weiß ich nicht ob ich das Displayzeug jemals verstehen werden Mal eine kleine Frage außerhalb von dem myAVR-Ding, aber trotzdem zum Display. Das myAVR-Display soll ja nur eine Übung für ien weiteres Projekt sein. Da hab ich allerdings den Enable und den RS auf PORTB gelegt die DB's aber auf PORTD. Könnte das ein Problem werden bzw. kann ich den fertigen Code auch nicht mehr verwenden?
Christian schrieb: > Danke Steffan für den Link. Hat etwas Licht ins dunkle gebracht. > Allerdings sind mir viele Sachen weiterhin unklar bzw nicht > nachvollziehbar wie in dem Programm gesprungen wird. Hab es mal versucht > mit dem AVR-STudio debugger nachzuverfolgen aber helfen kann der mir > auch nur begrenzt. Langsam weiß ich nicht ob ich das Displayzeug jemals > verstehen werden Dein Problem ist eher nicht das DIsplay an sich, sondern programmieren im Allgemeinen. Wenn dir die Bitoperationen bisher noch nichts gesagt haben, dann fehlen dir noch ein paar Vorübungen (mit zb ein paar LED an einem Port, die gezielt ein/aus geschaltet werden, ein Lauflicht etc.) > Mal eine kleine Frage außerhalb von dem myAVR-Ding, aber trotzdem zum > Display. Das myAVR-Display soll ja nur eine Übung für ien weiteres > Projekt sein. Da hab ich allerdings den Enable und den RS auf PORTB > gelegt die DB's aber auf PORTD. Könnte das ein Problem werden bzw. kann > ich den fertigen Code auch nicht mehr verwenden? WEnn der Code so geschrieben ist, dass man die Portbelegung einzelner Signale leicht ändern kann, dann ist es kein wirkliches Problem. Normalerweise ist es kein Problem.
Christian schrieb: > Die erste ist, dass ich gelesen habe, dass man das Display nach der > Selbstinitialisierung 3-mal in den 8-Bit-Modus setzen soll, bevor man es > in den 4-Bit-Modus setzt. Ist das hier weggelassen oder habe ich das > übersehen? Nein. Das hats du schon richtig erkannt.
Natürlich ist das Programmieren in C ein Problem, bin ja auch Anfänger und mache das erst seit 2 Wochen so richtig. Nur ist es eben so, dass ich mein Projekt für das ich das Display brauche nicht ewig hinauszögern kann bzw sollte. Und da dachte ich eben ok, die Übungen werden erst mal reichen. War wohl nicht so. Ein Lauflicht habe ich ja z.B. schon gemacht aber eben nicht mit Bitoperationen sondern über eine for-Schleife. Und für einen Würfel habe ich auch schon Maskierungen verwendet. Nur sagte mir eben die kombinierte Zuweisungen nichts. Dann muss ich eben wieder bei null anfangen. Und verbinde damit die Frage wer kennt ein gutes Buch wo C für den AVR bzw für einen µC erklärt wird. Gerne auch mit Erfahrungsberichten. Habe schon viele Bücher für die PC-Anwendung gesehen aber das sagt mir nicht so zu. Zudem hat es sich mit dem programmieren die nächstgen Tage eh erledigt, weil mein Programmer gestern, aus unerklärlichen Gründen, angefangen hat zu rauchen. Muss jetzt erstmal nen Transistor und ne neue Diode auftreiben.
Christian schrieb: > Dann muss ich eben wieder bei null anfangen. Und verbinde damit die > Frage wer kennt ein gutes Buch wo C für den AVR bzw für einen µC erklärt > wird. Das wird schwer. Solche Bücher sind rar ... > Gerne auch mit Erfahrungsberichten. Habe schon viele Bücher für > die PC-Anwendung gesehen aber das sagt mir nicht so zu. ... und damit sind wir beim nächsten Punkt. Du solltest deine 'Abneigung' gegen Programmieren am PC ablegen. Ein hier immer wieder geäußerter Vorschlag, der durchaus etwas für sich hat, ist es nämlich, sich seine ersten Sporen in der C-Progammierung auf dem PC zu verdienen. Warum das? Weil man auf dem PC aus dem Stand heraus ein System hat, das sich so verhält, wie es in der Literatur beschrieben ist. Dazu kommt, dass man auf dem PC ein System vor sich hat, bei dem man um mindestens 3-Zehnerpotenzen einfacher debuggen kann, als auf einem µC bei dem das Programm halt einfach nicht geht und keiner weiß warum. Auf dem PC hast du einen Monitor, einen Debugger und ein funktionierendes stdout zur Verfügung, das du benutzen kannst um deinem Programm während der Arbeit zuzusehen. Der für deinen AVR vorhandene Simulator zusammen mit dem Debugger ist da nur ein müder Abklatsch dagegen. Wenn auf deiner PC-Konsole saubere Statusmeldungen, die über printf ausgegeben werden durchlaufen und du diese in Detail studieren kannst um herauszufinden wo du dich vertan hast, so hat das eine ganz andere Qualität als die diversen Krücken, die man mit einem AVR akzeptieren muss. Bis man auf dem AVR sein Programm mit printf für Debugausaben spicken kann, ist es ein weiter Weg. Auf dem PC funktioniert das aus dem Stand heraus. Dazu kommt, dass C an sich auf dem PC völlig gleich funktioniert, wie auf dem AVR. Es ist lediglich die speziellen Dinge, wie: welches Register bewirkt was, wo muss welches Timing eingehalten werden; die auf dem PC schwer zu verwirklichen und zu kontrollieren sind. Aber all das hat zunächst nichts mit der Sprache C zu tun, sondern mit der Anwendung dieser Sprache in einem speziellen Umfeld. Die Sprache C, in ihren Grundlagen, lernt sich auf einem PC mit seiner viel besseren Umgebung wesentlich einfacher als wenn du im AVR im Nebel stochern musst.
Mhm ok, dass klang überzeugent. Dann werde ich mich doch an den PC machen müssen und C von klein auf neu erlernen. Ich könnte da ein Buch haben, von nem Kumpel: http://www.amazon.de/Programmieren-von-Anfang-Helmut-Erlenk%C3%B6tter/dp/3499600749/ref=sr_1_fkmr0_1?ie=UTF8&qid=1265966431&sr=8-1-fkmr0 Ist das gut für einen Anfänger? Was würdest du mir empfehlen? Mit welcher Software, möglicht für wenig Geld, programmier ich dann auf dem PC?
Christian schrieb: > Mhm ok, dass klang überzeugent. Dann werde ich mich doch an den PC > machen müssen und C von klein auf neu erlernen. > > Ich könnte da ein Buch haben, von nem Kumpel: > http://www.amazon.de/Programmieren-von-Anfang-Helmut-Erlenk%C3%B6tter/dp/3499600749/ref=sr_1_fkmr0_1?ie=UTF8&qid=1265966431&sr=8-1-fkmr0 > > Ist das gut für einen Anfänger? Was würdest du mir empfehlen? Empfehlenswert ist immer der 'Klassiker' "Kernighan & Ritchie Programmieren in C" Aber ich denke, dein Buch wird dich auch durch die ersten Schritte bringen und dir die vielen kleinen Stolpersteine und Fallen ausführlich darlegen :-) In deinem Buch ist (für erste) alles interessant, bis hin zum Kapitel "Kommandozeilenparameter". Die nachfolgenden Kapitel, die mit Datein zu tun haben, wirst du so auf dem AVR nicht brauchen, schadet aber auch nicht, wenn man die auf dem PC durcharbeitet. Die Teile die sich nach dem Dateihandling mit Strukturen beschäftigen, sind dagegen wieder sehr wichtig. Aber fang erst mal von vorne an :-) > Mit welcher Software, möglicht für wenig Geld, programmier ich dann auf > dem PC? Freie Entwicklungsumgebungen für C gibt es wie Sand am Meer.
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.