Moin, ich habe einen Atmega328p vor mir liegen, besser gesagt einen Arduino Uno rev3. Ich würde diesen Chip ganz gerne mit meinem LCD verbinden und das Programm aus dem AVR-Tutorial, womit man deinen LCD ansteuert, 1 zu 1 übernehmen. Ich weiß dass das nicht Sinn der Sache ist, aber das sei erstmal dahingestellt. Da ich nun endlich mal was auf die Reihe bringen möchte, wollte ich mich nicht gleich an beide Datenblätter und es nach längerer Recherche selber herausfinden. Für mich ist das ganze noch neuland und ich würde dabei wahrscheinlich auf Unklarheiten stoßen. Vielleicht kann mir einer von euch sagen ob ich das Programm so übernehmen kann, damit ich mir die restliche Zeit erstmal sparen kann. Danke schonmal
Ist zwar Pin-Kompatibel, das Programm musst du aber neu kompilieren und Registernamen und so ändern / anpassen.
Hubert G. schrieb: > Ist zwar Pin-Kompatibel, das Programm musst du aber neu kompilieren und > Registernamen und so ändern / anpassen. Neu kompilieren weiß ich, aber welche Registernamen meinst du? Also muss ich mich wohl doch in beide Datenblätter reinarbeiten...
Wirst du wohl müssen. Du kannst ja mal kompilieren und nach den Fehlermeldungen vorgehen.
Hubert G. schrieb: > Wirst du wohl müssen. > Du kannst ja mal kompilieren und nach den Fehlermeldungen vorgehen. ok danke
int 21h schrieb: > wollte ich mich > nicht gleich an beide Datenblätter und es nach längerer Recherche selber > herausfinden. Das ist ein sehr seltsamer Charakterzug... (aus meiner Sicht) int 21h schrieb: > und ich würde dabei > wahrscheinlich auf Unklarheiten stoßen. Nicht lesen, aber doch schon wissen, was du vorfindest... Eigentlich noch seltsamer... int 21h schrieb: > Also muss ich mich wohl doch in beide Datenblätter reinarbeiten... Durchaus!
Von Atmel gibt es eine AN mit dem direkten Vergleich aller Bezeichnungen der beiden Familien für Umsteiger. Das dürfte genau das sein, was Du suchst. Allerdings hab ich das bei Microchip auf Anhieb nicht gefunden, mußt selber mal suchen.
"replacing" dürfte das Stichwort sein, also "replacing atmega8 by atmega88" o.ä.
Ich hab die zumindest noch bei mir gefunden: AVR094: Replacing ATmega8 by ATmega88
Arduino Fanboy D. schrieb: > Das ist ein sehr seltsamer Charakterzug... > (aus meiner Sicht) Kannst du auch mal ohne Stänkern?
EloGuy schrieb: > Arduino Fanboy D. schrieb: >> Das ist ein sehr seltsamer Charakterzug... >> (aus meiner Sicht) > Kannst du auch mal ohne Stänkern? Wieso "Stänkern"? Arduino Fanboy D hat sehr freundlich zurückhaltend formuliert, dass der Fragesteller ein fauler Hund ist. Wie heißt das doch gleich "soll ich mir denken" oder "mich denken" - ach nee, "lass Andere denken"!
Manfred schrieb: > Arduino Fanboy D hat sehr freundlich zurückhaltend formuliert, dass der > Fragesteller ein fauler Hund ist. Wieso das den jetzt? Ich bemühe mich schon seit heute Nachmittag das LCD zum laufen zu bringen. Es ist halt nur so, das mir zu viel Input an einem Tag einfach durcheinander bring, habe schon genug Tabs offen (11 um genau zu sein) und alle handeln irgendwie vom dem, was ich vor habe... aber egal. Ich habe mich sowieso erstmal dazu entschlossen das ganze über die Arduino IDE zum laufen zu bringen. Habe bereits alles korrekt am LCD angeschlossen, LCD Datenblatt gecheckt, Programm ins Flash rauf gespielt, aber die 16*2 Chars leuchten alle schwarz, mehr passiert da nicht. Edit: hat die Pins am LCD noch einmal gecheckt und neu gelötet. Den Rest erledige ich dann morgen.
int 21h schrieb: > Manfred schrieb: >> Arduino Fanboy D hat sehr freundlich zurückhaltend formuliert, dass der >> Fragesteller ein fauler Hund ist. > > Wieso das den jetzt? > Ich bemühe mich schon seit heute Nachmittag das LCD zum laufen zu > bringen. Vielleicht hast Du es einfach ungeschickt formuliert: int 21h schrieb: > wollte ich mich nicht gleich an beide Datenblätter und es nach längerer Recherche selber herausfinden. Sehe es mir / uns nach, das klingt so, als dass Du keine Lust hast, die Datenblätter selbst durch zu arbeiten.
int 21h schrieb: > Ich bemühe mich schon seit heute Nachmittag das LCD zum laufen zu > bringen. Es ist halt nur so, das mir zu viel Input an einem Tag einfach > durcheinander bring, habe schon genug Tabs offen (11 um genau zu sein) > und alle handeln irgendwie vom dem, was ich vor habe Huiuiui! Hast du schon mit Amnesty ob dieser groben Verletzung deiner Menschenrechte Kontakt aufgenommen? Alternativ empfiehlt sich auch eine Bewerbung um die Auszeichnung zum Helden der Arbeit. Ernsrhaft: Was erwartest du? Strukturiertes sinnvolles Vorgehen ist Basis jeder Entwicklung - und ja, das kostet Zeit. Wenns schnell gehen soll, am besten gleich fertig kaufen spart auch die Arbeit und Mühe. Und im forum zu fragen, ob ein IC pinklmpatibel ist, kann man zwar machen, aber im Zweifelsfall würde zumindest ich mich nicht auf Aussagen von Fremden im Internet verlassen wollen, sondern selbst beim Hersteller recherchieren. Aber gut...
Toni Tester schrieb: > > Ernsrhaft: Was erwartest du? Strukturiertes sinnvolles Vorgehen ist > Basis jeder Entwicklung - und ja, das kostet Zeit. Wenns schnell gehen > soll, am besten gleich fertig kaufen spart auch die Arbeit und Mühe. > Und im forum zu fragen, ob ein IC pinklmpatibel ist, kann man zwar > machen, aber im Zweifelsfall würde zumindest ich mich nicht auf Aussagen > von Fremden im Internet verlassen wollen, sondern selbst beim Hersteller > recherchieren. > Aber gut... Hast natürlich absolut Recht. Ich werde es mir für das nächste mal vorbehalten.
Warum möchte man überhaupt als Anfänger zu Beginn gleich den Controller wechseln? Programmiere doch erstmal den Uno mit seinem 328P. Damit bist du eine Weile beschäftigt. Du benötigst zur Zeit keine zusätzlichen Fehlerquellen. Ein Nachmittag als Zeitspanne anzugeben ist ehrlich gesagt nichts. Manche Fehlersuche dauert länger.
Veit D. schrieb: > Warum möchte man überhaupt als Anfänger zu Beginn gleich den Controller > wechseln? Programmiere doch erstmal den Uno mit seinem 328P. Er will den Controller nicht wechseln. Er will das Tutorial für den M8 am M328P verwenden und frägt nach Kompatiblität.
int 21h schrieb: > Ich habe mich sowieso erstmal dazu entschlossen das ganze über die > Arduino IDE zum laufen zu bringen. > Habe bereits alles korrekt am LCD angeschlossen, LCD Datenblatt > gecheckt, Programm ins Flash rauf gespielt, aber die 16*2 Chars leuchten > alle schwarz, mehr passiert da nicht. Was sagt die Kontrastspannung und wie steht es um die Hintergrund-LED? EloGuy schrieb: > Er will den Controller nicht wechseln. Er will das Tutorial für den M8 > am M328P verwenden und frägt nach Kompatiblität. Wenn das LCD am Arduino Uno nicht mit dem Arduino Code funktioniert, gibt es erstmal ein ganz anderes Problem. Der Übertragung des Tutorials auf einen anderen Prozessor ist eine ganz andere Baustellt.
int 21h schrieb: > Es ist halt nur so, das mir zu viel Input an einem Tag einfach > durcheinander bringt Man migriert ein Projekt auch nicht an einem Tag auf einen anderen Mikrocontroller. Was hast Du Dir dabei gedacht? Hast du diese Teile überhaupt schon einmal selbst programmiert, oder ist das eine copy/paste Arbeit? > aber die 16*2 Chars leuchten alle schwarz, mehr passiert da nicht. Häufigste Ursache dafür ist zu hohe Kontrastspannung (relativ zu VCC). Solange das Display noch nicht initialisiert ist (also nur Stromversorgung hat) soll die obere Reihe hellgraue Blöcke anzeigen und die untere Reihe soll gar nichts anzeigen. Da musst du erstmal hin kommen, bevor du dem Display Kommandos schickst.
int 21h schrieb: > Ich bemühe mich schon seit heute Nachmittag das LCD zum laufen zu > bringen. >. .. > gecheckt, Programm ins Flash rauf gespielt, aber die 16*2 Chars leuchten > alle schwarz, mehr passiert da nicht. > Hi, da ich auch recht viel Zeit mit LCDs verbracht habe, um diese zur Mitarbeit zu bewegen, lassen sich meine Erfahrungen in etwa so zusammenfassen: Es empfiehlt sich also, erst einmal die Checkliste abzuhaken: 1.) Pinout des LCD (oft sind sogar Powersupplyanschlüsse verdreht.) Zeig mal ein Foto. Sieht das so aus wie im Bild? 2.) Controller der LCD-Type. Ist meistens bei den 16 x 2 nach dem Hitachi HD44780-Standard 3.) Die MCU ist wie mit welchem Port verbunden. Gerade beim Vierbit-Modus die Zuordnung der Bits im Port muss mit dem Programm übereinstimmen. Die "swap" Befehle müssen dementsprechend richtig gesetzt werden. Das Prog im Tutorial hier weist auch darauf hin. Wenn man möchte, kann man sich einen Adapter bauen, der richtig herum verbindet, wenn man eine geänderte Portpinbelegung nicht softwaremäßig abändern möchte. (letztes Bild) 4.) Der Enable Impuls ist zu erzeugen. Das ist nicht nur ein statisches Setzen von Portbits. Sondern muss getoggelt werden. Also Setzen, no operation Befehle je nach CPU Takt mehr oder weniger, Rücksetzen. 5.) Die Pausen zwischen den Befehlen beim Initialisieren müssen ausreichend lang sein. Dazu müssen Zeitschleifen programmiert werden. Dafür sollte man nicht dieselben Temporärregister nehmen, bei denen auch andere Operationen ausgeführt werden, ohne diese Register auf Stack mit "push" zu sichern und anschließend mit "pop" wieder zurückzuholen. Es empfiehlt sich auch, das SREG zu sichern. Das Portieren der Programme ist bei entsprechender Anpassung nicht gänzlich ausgeschlossen. Aber zum Beispiel ein Programm für den ATtiny2313 unangepasst auf einem ATMEGA32U4 laufen zu lassen, geht nicht. Vor allem, weil viele Register "memory mapped" sind. Um diese ansprechen zu können, müssen andere Befehle genommen werden, die der ATtiny mit "no such instruction" quittiert. Also, bleib erst einmal beim ursprünglichen Prozessor. ciao gustav
:
Bearbeitet durch User
Karl B. schrieb: > LCD_AVR_conn.jpg Was versprichst du dir von der 8-Bit Verdrahtung für die Daten. Bei den Update-Raten, die für ein Display sinnvoll sind, ist das nur unnötiger Verdrahtungsaufwand und Pin-Verschwendung am µC. Sicher funtionierende Beispiele zur Initialisierung des 4-Bit Modus vom LCD-Controller gibt es mehr als genug.
Horst schrieb: > Allerdings hab ich das bei Microchip auf Anhieb nicht gefunden, mußt > selber mal suchen. Horst schrieb: > AVR094: Replacing ATmega8 by ATmega88 http://ww1.microchip.com/downloads/en/AppNotes/doc2553.pdf
Eigentlich ist das Dokument nicht ausreichend. Denn es soll ja der 328P ausgetauscht werden. Hier eine Sammlung Features, auf die man beim ATMega8 dann verzichten muss: http://ww1.microchip.com/downloads/en/appnotes/doc8349.pdf
Wolfgang schrieb: > Was versprichst du dir von der 8-Bit Verdrahtung für die Daten. Hi Schau doch mal genauer hin: Ist doch schon rausgeixt. Die Leitungen zu den Rs fallen doch auch weg. ciao gustav
Karl B. schrieb: > Hi, > da ich auch recht viel Zeit mit LCDs verbracht habe, um diese zur > Mitarbeit zu bewegen, lassen sich meine Erfahrungen in etwa so > zusammenfassen: > Es empfiehlt sich also, erst einmal die Checkliste abzuhaken: > ... Tut mir Leid das ich dir/euch jetzt zu viele Umstände bereitet habe, es ist nämlich so das, das ich beim LCD nicht alle 12 Pins die ich gebrauche, richtig verlötet hatte, das war halt das Problem. Das merkte ich halt zufällig, als ich die Pins am LCD angetastet habe und es durch den Wackelkontakt dann doch funktionierte. Das war halt das Problem. Das mit der Kontrastspannung habe ich mit einem Potentiometer gelöst, habe den aber dann durch einen 2k Widerstand ersetzt. Deine Checkliste habe ich aber vorsichtshalber mal bei mir abgespeichert, falls es zu anderen Komplikationen kommen sollte, danke dafür :)
int 21h schrieb: > Das mit der Kontrastspannung habe ich mit einem Potentiometer gelöst, > habe den aber dann durch einen 2k Widerstand ersetzt. Ein Poti wäre schon besser, denn der Kontrast ändert sich mit der Temperatur und Zeit.
Karl B. schrieb: > Schau doch mal genauer hin: Das habe ich schon vorher getan ;-) > Ist doch schon rausgeixt. > Die Leitungen zu den Rs fallen doch auch weg. Ich sehe im Schaltplan vier durchgeixte Widerstände und ansonsten viele Leitungen an Stellen, wo das Datenblatt für den 4-Bit Modus sagt: "Bus lines DB0 to DB3 are disabled", m.a.W. Drähte sind da sinnlos. Und Flachbandkabel ist da auch angelötet.
Wolfgang schrieb: > m.a.W. Drähte sind da sinnlos. > Und Flachbandkabel ist da auch angelötet. Ja, genau weil es so vom Hersteller geliefert wurde am Display. Die unnötigen Drähte einfach so herumschlackern lassen? Und der Hersteller weiß ja nicht, ob man doch im 8-Bit-Modus fahren möchte. 16-polig bleibt die mitgelieferte Steckverbindung so oder so. Es ist jedem unbenommen, die Verdrahtung seinen Vorstellungen anzupassen. Das Bildchen erhebt ja auch keinen Absolutheitsanspruch, nur ein kleiner Denkanstoß, wie man es vielleicht machen könnte. ciao gustav
Stefanus F. schrieb: > Ein Poti wäre schon besser, denn der Kontrast ändert sich mit der > Temperatur und Zeit. ich hatte einen PWM Ausgang gewählt mit 2 Dioden R und etwas C dann kann man den Kontrast per SW einstellen https://www.holger-klabunde.de/dcdc/picdcdc.htm R C und F muss man für das vorhandene optimieren
Ich würde dafür keinen großen Ruß machen. 2 Widerstände, Transistor, 100Hz (ggf. etwas mehr) PWM Takt.
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.