In den Unterlagen und Links die wir im Unterricht bekommen haben heißt es das man das Display mit LCD_CONFIG(1,1,1); so konfiguriert das es an ist, der Cursor an ist und er blinkt. Was mir in den zur Verfügung gestellten Unterlagen fehlt ist eine Erklärung warum das so ist. In einer Frage wird nämlich gefragt was man tun muss um den Cursor nicht blinken zu lassen und ihn als Unterstrich darzustellen. Ich vermute zwar das man die letzte 1 durch eine Null ersetzen muss doch ob und wie man seine Form verändert....?! Laut http://sprut.de/electronic/lcd/index.htm#befehle braucht es einiges mehr um das Display zu steuern. Ist der Arduino nun so stark beschnitten das er nur Display an/aus Und Cursor an/aus und blinken kann? Oder ist es grade sein Vorteil das man an anderen Einstellungen nichts drehen kann? Wenn ich mir jetzt einen Arduino kaufe und ein Display dazu. Wo finde ich dann die Befehle die der Arduino versteht und entsprechend dessen umwandelt was das Display versteht? Die Befehlslisten die ich im netz finde sind frei von LCD Befehlen. Und woher weiß ich was ich alles oben als #DEFINE scheiben muss?
:
Bearbeitet durch User
Hallo Jens N., was nun dein spezielles LCD kann, hängt genau von diesem ab und ist in seinem Datenblatt beschrieben. Der Arduino ist kein etwas, sondern nur eine IDE. Programmieren muss man schon selbst, und das anhand der vorliegenden Datenblätter. Wenn Du die Seite http://sprut.de/electronic/lcd/index.htm#controller schon kennst, dann schau mal beim Urvater der Controllerchip HD44780. Dieser ist meistens die Grundlage Neuentwicklungen, muss aber nicht! Mehr Infos zu den Grundlagen? https://www.sparkfun.com/datasheets/LCD/HD44780.pdf https://en.wikipedia.org/wiki/Hitachi_HD44780_LCD_controller
Nachtrag, da gibt es so eine "komische" Webseite https://www.arduino.cc/en/Tutorial/LiquidCrystalDisplay die beschreibt das zugrunde liegende Framework. Wenn man dies verwenden will, und nicht einfach den avr-gcc mit der libc 2.0 nutzt, dann muss man halt alles dort lesen und verstehen.
Jens N. schrieb: > In den Unterlagen und Links die wir im Unterricht bekommen haben heißt > es das man das Display mit LCD_CONFIG(1,1,1); so konfiguriert das es an > ist, der Cursor an ist und er blinkt. > > Was mir in den zur Verfügung gestellten Unterlagen fehlt ist eine > Erklärung warum das so ist. Das einfachste wird sein, wenn du dir den Quellcode dazu ansiehst und das Datenblatt com LCD-Controller dazu nimmst.
Karl M. schrieb: > Programmieren muss man schon selbst, und das anhand der vorliegenden > Datenblätter. > Arduino hat doch seine eigenen Befehle die das Handling mit ihm als Mikrocontroller erleichtern. Und darum geht es mir ja. Anstatt das ich nun jedesmal einen Befehl schicken muss der dem Display sagt das jetzt geschrieben wird, das jetzt daten kommen und die Daten an sich, geht das bei Arduino ja sehr viel einfacher. Und eben diese speziellen Arduino Befehle müssen doch irgendwo stehen, außer in Tutorials von Leuten die sie schon gefunden haben.
Wolfgang schrieb: > > Das einfachste wird sein, wenn du dir den Quellcode dazu ansiehst und > das Datenblatt com LCD-Controller dazu nimmst. Wo finde ich diesen Quellcode? Also ich kann mir denken was du meinst. Das wo steht was rausgeht wenn man z.b. LCD_CONFIG(1,1,1); als Befehl abschickt.
Jens N. schrieb: > Arduino hat doch seine eigenen Befehle die das Handling mit ihm als > Mikrocontroller erleichtern. Du siehst, so viel einfacher wird es nicht. Bei Arduino hast du schon geguckt? https://www.arduino.cc/en/Reference/LiquidCrystal
Karl M. schrieb: > > Wenn man dies verwenden will, und nicht einfach den avr-gcc mit der libc > 2.0 nutzt, dann muss man halt alles dort lesen und verstehen. libc 2.0 ?
Jens N. schrieb: > Karl M. schrieb: > >> >> Wenn man dies verwenden will, und nicht einfach den avr-gcc mit der libc >> 2.0 nutzt, dann muss man halt alles dort lesen und verstehen. > > libc 2.0 ? Ja der erste Hit bei Google - die Welt ist doch so einfach: http://nongnu.org/avr-libc/user-manual/
Karl M. schrieb: > Jens N. schrieb: >> Karl M. schrieb: >> >>> >>> Wenn man dies verwenden will, und nicht einfach den avr-gcc mit der libc >>> 2.0 nutzt, dann muss man halt alles dort lesen und verstehen. >> >> libc 2.0 ? > > Ja der erste Hit bei Google - die Welt ist doch so einfach: > > http://nongnu.org/avr-libc/user-manual/ Ich verstehe gar nicht was du mir damit sagen willst. Die Seite ist scheinbar eine Hilfeseite für AVR Mikrocontroller. Lesen und verstehen muss ich doch da auch.
Wolfgang schrieb: > Jens N. schrieb: >> Arduino hat doch seine eigenen Befehle die das Handling mit ihm als >> Mikrocontroller erleichtern. > > Du siehst, so viel einfacher wird es nicht. > > Bei Arduino hast du schon geguckt? > https://www.arduino.cc/en/Reference/LiquidCrystal danke, wird mir für die Zukunft sicher nützlich ein. Gibt dort tatsächlich allerhand Befehle für das LCD. Nur finde ich keinen der Cursor und Display vereint. wo also kommt dieses LCD_CONFIG her?
Jens N. schrieb: > wo also kommt dieses LCD_CONFIG her? Ich bin in Sachen Arduino sowas wie eine eingewiesene Person mit fundiertem Halbwissen. Aber das Ding habe ich noch nie gesehen. Du hast es angeschleppt... Wirst dann ja wohl wissen, wo es her kommt.... Nach Arduino LCD Gedöns, sieht es auf jeden Fall erstmal nicht aus. Irgendeine Eigenkreation?
Um das lesen und verstehen wirst du in keinem Fall herumkommen. Die Frage ist jedoch was du lesen und verstehen musst. Und da wurde dir bisher nicht so richtig bei geholfen das herauszufinden. > http://nongnu.org/avr-libc/user-manual/ Das ist die Implementierung der C Lib der gcc Kompiler-Variante für AVR µC. Das hat garnichts mit Displays und damit auch nicht mit deiner Frage zu tun. > https://www.arduino.cc/en/Tutorial/LiquidCrystalDisplay Das ist die LiquidCrystal Lib zur Verwendung mit Arduino um bestimmte Displays (HD44780 kompatible) anzusteuern. Schon nicht schlecht. Kurz mal reingelesen und einen Click weiter schon weisst du, wie das Blinken der Cursors ein/ausgeschaltet wird. https://www.arduino.cc/en/Tutorial/LiquidCrystalBlink
1 | // Turn off the blinking cursor:
|
2 | lcd.noBlink(); |
3 | delay(3000); |
4 | // Turn on the blinking cursor:
|
5 | lcd.blink(); |
Leider passt das garnicht zu dem was du schriebst:
>(...)das man das Display mit LCD_CONFIG(1,1,1); so konfiguriert
Und das liegt wohl einfach daran, dass du garnicht die Arduino
LiquidCrystal lib benutzt, sondern eine anderen Treiber für das Display.
Welcher Treiber für das dir vorliegende LCD verwendet wird findest du
also am besten mal in deinen Schul-Unterlagen heraus!
Arduino Fanboy D. schrieb: > Nach Arduino LCD Gedöns, sieht es auf jeden Fall erstmal nicht aus. > Irgendeine Eigenkreation? Dem stimme ich zu.
Jens N. schrieb: > wo also kommt dieses LCD_CONFIG her? Du solltest doch wissen, was du alles in deinem Programm eingebunden hast.
Arduino Fanboy D. schrieb: > Ich bin in Sachen Arduino sowas wie eine eingewiesene Person mit > fundiertem Halbwissen. > Aber das Ding habe ich noch nie gesehen. Grins ... ich auch nicht. Von Haus aus kann Arduino gar kein LCD, dazu muß eine Library wie LiquidCrystal.h eingebunden werden. Die zulässigen Aufrufe ergeben sich aus dieser. Ich habe hier die Standard-Chinesen 1602 und 2004 im Betrieb, ohne nennenswert drüber nachdenken zu müssen. Klar, im Gegensatz zum PC-Monitor muß man Zeile und Position selbst verwalten, aber das habe ich nach einer Weile Spielerei herausbekommen.
Arduino Fanboy D. schrieb: > Jens N. schrieb: >> wo also kommt dieses LCD_CONFIG her? > > Ich bin in Sachen Arduino sowas wie eine eingewiesene Person mit > fundiertem Halbwissen. > Aber das Ding habe ich noch nie gesehen. > > Du hast es angeschleppt... > Wirst dann ja wohl wissen, wo es her kommt.... > > > Nach Arduino LCD Gedöns, sieht es auf jeden Fall erstmal nicht aus. > Irgendeine Eigenkreation? Mir fällt jetzt erst auf das da eine lcd_hd44780.h eingebettet wurde. Scheint also tatsächlich nichts mit Arduino zutun zu haben. Was ich eigentlich ziemlich frech finde da wir das im Rahmen unserer Arduino Anfänge bekommen haben. Scheint als hätte unser Lehrer auch nicht so den Plan von dem was er da tut.
Jens N. schrieb: > Scheint also tatsächlich nichts mit Arduino zutun zu haben. Was ich > eigentlich ziemlich frech finde da wir das im Rahmen unserer Arduino > Anfänge bekommen haben. Es gibt hunderte von Bibliotheken für Arduino. Deine scheint auch eine davon zu sein. Was findest du daran genau frech? Wenn du dort mal rein guckst, entdeckst du vielleicht dein LCD_CONFIG().
Jens N. schrieb: > Scheint als hätte unser Lehrer auch nicht so den > Plan von dem was er da tut. Arduino ist eine Entwicklungumgebung, die auf der Programmiersprache c++ aufbaut. Bei C++ ist es durchaus üblich, den Funktionsumfang durch das Einbinden von Libraries zu erweitern. Dieses Vorgehensweise wird Dir in Zukunft noch bei vielen anderen Programmiersprachen begegnen. Insofern finde ich die Vorgehensweise Sinnvoll.
Stefanus F. schrieb: > Jens N. schrieb: >> Scheint als hätte unser Lehrer auch nicht so den >> Plan von dem was er da tut. > > Arduino ist eine Entwicklungumgebung, die auf der Programmiersprache c++ > aufbaut. Bei C++ ist es durchaus üblich, den Funktionsumfang durch das > Einbinden von Libraries zu erweitern. Dieses Vorgehensweise wird Dir in > Zukunft noch bei vielen anderen Programmiersprachen begegnen. > > Insofern finde ich die Vorgehensweise Sinnvoll. Bisher ging ich davon aus das eine IDE das Programm ist welches das programmieren ermöglicht. Arduino ist für mich eine marke die Mikrocontroller Endverbraucher freundlich verbaut und einen C Dialekt entwickelt hat, sodass dem Unerfahrenen das programmieren leichter von der Hand geht.
Jens N. schrieb: > Arduino ist für mich eine marke die Mikrocontroller Endverbraucher > freundlich verbaut und einen C Dialekt entwickelt hat, sodass dem > Unerfahrenen das programmieren leichter von der Hand geht. So so, eine Marke mit einem C Dialekt .... Du wirst noch einiges lernen müssen. Aber ich werde es dir nicht erklären.
Kreuzwort Rätsel schrieb: > Jens N. schrieb: >> Arduino ist für mich eine marke die Mikrocontroller Endverbraucher >> freundlich verbaut und einen C Dialekt entwickelt hat, sodass dem >> Unerfahrenen das programmieren leichter von der Hand geht. > > So so, eine Marke mit einem C Dialekt .... > > Du wirst noch einiges lernen müssen. Aber ich werde es dir nicht > erklären. Welchen Vorteil soll Arduino sonst haben wenn nicht der leichtere Zugang?
Jens N. schrieb: > und einen C Dialekt entwickelt hat Nöö... Ein paar Komfort Funktionen und Klassen. In C und C++ geschrieben. Mit ein klein wenig Assembler garniert. *.ino Dateien sind immer C++
Jens N. schrieb: > Welchen Vorteil soll Arduino sonst haben wenn nicht der leichtere > Zugang? -- Kopfschüttel -- Kenner auf uC.net wissen wohin sich solch ein Thread entwickelt.
Wolfgang schrieb: > Jens N. schrieb: >> Scheint also tatsächlich nichts mit Arduino zutun zu haben. Was ich >> eigentlich ziemlich frech finde da wir das im Rahmen unserer Arduino >> Anfänge bekommen haben. > > Es gibt hunderte von Bibliotheken für Arduino. Deine scheint auch eine > davon zu sein. Was findest du daran genau frech? > Wenn du dort mal rein guckst, entdeckst du vielleicht dein LCD_CONFIG(). Anscheinend gibt es für die gleiche Sache verschiedene Bibliotheken. Ich ging davon aus das man Anfangs dann doch erstmal die nimmt, die direkt von Arduino bereit gestellt wurden. langsam dämmert es mir allerdings das da wohl jeder seinen Teil beisteuern kann.
Kreuzwort Rätsel schrieb: > Jens N. schrieb: >> Welchen Vorteil soll Arduino sonst haben wenn nicht der leichtere >> Zugang? > > -- Kopfschüttel -- > > Kenner auf uC.net wissen wohin sich solch ein Thread entwickelt. Laut der C´t Make: Arduino Spezial 2/2017 ist der Arduino MIT seiner leicht verständlichen Entwicklungsumgebung ursprünglich für IT ferne Anwender entwickelt wurden.
void schrieb: > Um das lesen und verstehen wirst du in keinem Fall herumkommen. > > Die Frage ist jedoch was du lesen und verstehen musst. Und da wurde > dir bisher nicht so richtig bei geholfen das herauszufinden. > > >> http://nongnu.org/avr-libc/user-manual/ > > Das ist die Implementierung der C Lib der gcc Kompiler-Variante für AVR > µC. Das hat garnichts mit Displays und damit auch nicht mit deiner Frage > zu tun. > Kannst du mir das mal bitte so erklären als wenn du es deiner Oma erklären würdest? Ich kann da nichtmal eine Frage zu formulieren.
:
Bearbeitet durch User
Kreuzwort Rätsel schrieb: > Kenner auf uC.net wissen wohin sich solch ein Thread entwickelt. -- Ohne weitere Worte --
Jens N. schrieb: > Anscheinend gibt es für die gleiche Sache verschiedene Bibliotheken. Für den "Arduino" gibt es nur ein LCD. s. deine Unterlagen aus dem Jahre 2002. SCNR, leo
Denke das mir dieser Thread hier einiges gebracht hat. Danke dafür. Zuletzt nur noch eins: Woher bekomme ich die Info was ich alles als #define zur Initialisierung schreiben muss. Aus dem Datenblatt jedenfalls nicht. Oder ist das garnicht nöt?
Jens N. schrieb: > Kannst du mir das mal bitte so erklären als wenn du es deiner Oma > erklären würdest? Ich kann da nichtmal eine Frage zu formulieren. Arduino und IDE ist eine Kuchenform, muss nur noch der Teig rein, den machst du aus dem mitgelieferten Rezeptheft. Dummerweise denken manche andere Rezepte sind besser und wollen einen anderen Teig, da funktioniert die Anleitung aus deinem Rezeptheft nicht, man muss schon in das andere Rezept schauen.
leo schrieb: > Für den "Arduino" gibt es nur ein LCD. > s. deine Unterlagen aus dem Jahre 2002. Du meinst vermutlich "von Arduino ..."
Wolfgang schrieb: > leo schrieb: >> Für den "Arduino" gibt es nur ein LCD. >> s. deine Unterlagen aus dem Jahre 2002. > > Du meinst vermutlich "von Arduino ..." Nope. leo
Joachim B. schrieb: > Jens N. schrieb: >> Kannst du mir das mal bitte so erklären als wenn du es deiner Oma >> erklären würdest? Ich kann da nichtmal eine Frage zu formulieren. > > Arduino und IDE ist eine Kuchenform, muss nur noch der Teig rein, den > machst du aus dem mitgelieferten Rezeptheft. > Dummerweise denken manche andere Rezepte sind besser und wollen einen > anderen Teig, da funktioniert die Anleitung aus deinem Rezeptheft nicht, > man muss schon in das andere Rezept schauen. Ist die Libary nun das Rezept und der GCC eine andere Kuchenform? Oder anders: Was bringt mir die Libary und was ist ein GCC Kompiler?
Das geht schon in Richtung "Popkorn" und "Beine hochlegen", oder geht nur mir das so?
Jens N. schrieb: > Zuletzt nur noch eins: Woher bekomme ich die Info was ich alles als > #define zur Initialisierung schreiben muss. Lies deine Unterlagen und schau halt einfach mal in die Datei rein was da drin steht. Ich wette da gibt es entsprechende Kommentare. -> lcd_hd44780.h (und vermutlich auch lcd_hd44780.c) Jens N. schrieb: >Was bringt mir die Libary Nichts, denn du verwendest die LiquidCrystal Lib garnicht. Das ist der Punkt. Du verwendest etwas anderes. Dann musst du auch die Doku (Quelltext/Kommentare) zu dem anderen lesen. > und was ist ein GCC Kompiler? Ein Kompiler for C und C++ (unter anderem). https://de.wikipedia.org/wiki/GNU_Compiler_Collection
Karl M. schrieb: > Das geht schon in Richtung "Popkorn" Ich habe Chips und Cola. Aber ja, in die Richtung geht es. Leider.
Jens N. schrieb: > Bisher ging ich davon aus das eine IDE das Programm ist welches das > programmieren ermöglicht. > > Arduino ist für mich eine marke die Mikrocontroller Endverbraucher > freundlich verbaut und einen C Dialekt entwickelt hat, sodass dem > Unerfahrenen das programmieren leichter von der Hand geht. Jens N. schrieb: > Welchen Vorteil soll Arduino sonst haben wenn nicht der leichtere Zugang? Bitte lese Deine Texte etwas sorgfältiger, bevor Du diese absendest, Dein Deutschlehrer hätte da wohl so einige rote Anmerkungen. -------- Du vermutest vollkommen richtig: Arduino soll Leuten einen einfachen Zugang zu Mikrocontrollern ermöglichen. Durch den ab Werk installierten Bootloader kann man Programme per USB aufspielen, ohne einen speziellen Programmieradapter anschaffen zu müssen. Aber: Unter der Arduino-IDE versteckt sich ein ganz normaler Compiler (GCC), wie er auch in komerziellen Umgebungen Verwendung findet. Auch hier nimmt Dir Arduino aber Aufwand ab, den Compiler mit Makefiles .. erst aufwendig einrichten zu müssen. Nochmal aber: Arduino nutzt die weit verbreitete Sprache C++, das ist keine eigene Marke ! Wer will (und kann), kann mit der Arduino-IDE auch Programme compilieren, die in 'klassischem C++' erzeugt wurden. Ich finde Arduino gut und habe damit schon ernsthafte Geräte zur Funktion bekommen. Wie stefanus schrieb, ist das Einbinden von Libraries üblich / sinnvoll und damit auch in der Arduino-IDE nicht zu vermeiden. Schaue es Dir an, evtl. stellst Du den Programmcode (Forumsregeln lesen!) hier rein, dann bekommst Hilfe zu Details. Jens N. schrieb: > Ist die Libary nun das Rezept und der GCC eine andere Kuchenform? Oh oh ... das wird jetzt gefährlich. Karl M. schrieb: > Das geht schon in Richtung "Popkorn" und "Beine hochlegen", oder geht > nur mir das so? Das zeigt einen komplett ahnungsfreien Anfänger, der es ganz sicher nicht böse meint. Versuche bitte, Dich zurück zu halten, hier gibt es ein paar geduldigere Leute, die positv drauf eingehen. Hätte es dieses Forum vor 40 Jahren schon gegeben, weiß ich nicht, ob ich nicht ähnlich unbeholfene Fragen gestellt hätte.
Hallo Manfred, ich fühle mich durch die doch einfach selbst zu organisierenden Antworten, veralbert. Als ich anfing, musste ich noch z.B. bei Ti in den USA anrufen und mich mit einem entwicklungs ING. gut stellen, um dann nach Wochen endlich eine 1000 Seite Datenbuch auf 40 Gramm Papier zu gesendet zu bekommen. Da war noch Zeit, um sich selbst Informationen aus Papier zusammen zu tragen. Es scheint mir so, dass einige selbst mit dem Wissen aus dem Inet nicht zurecht kommen.
Rechtschreibung war schon immer ein Problem. Ich kann noch so lange gucken, ich finde viele Fehler nicht. Oder weiß garnicht das es einer ist. Die Libary bei der ich vorhin fragte wozu sie ist, ist diese hier: http://nongnu.org/avr-libc/user-manual/ Ich denke mir jetzt aber das diese wohl dafür gedacht ist, AVR Mikrocontroller in normalen c/c++ Compilern zu programmieren. Ich denke das die Kompetenz sich Wissen anzueignen, ohne jemanden zu fragen, ohne schöne Schritt für Schritt Erklärung. Eine Fähigkeit ist an der ich arbeiten sollte. Das sehe ich ja ein. Ich weiß nur nicht wie ich das machen soll da mir ja auch die Zeit davon rennt. --- Danke jedenfalls an die geduldigen. Nachtrag: Mit Marke meinte ich nicht die Sprache sondern Arduino an sich. Und das ich so Sachen schreiben kann wie: "Pinmode()" ist doch aber Arduino spezifisch, nicht?
:
Bearbeitet durch User
Karl M. schrieb: > ich fühle mich durch die doch einfach selbst zu organisierenden > Antworten, veralbert. Ich widerspreche Dir nicht, selbstständig arbeiten und Lösungskompetenz kommen aus der Mode. > Als ich anfing, musste ich noch z.B. bei Ti in den USA anrufen Wem erzählst Du das? Begonnen habe ich mit einem cbm3032 in Basic, dann Line-by-Line per Assembler geklempnert. Irgendwann bekam ich einen Makroassembler in die Finger, da war ich garnicht mehr zu bremsen. 1987 habe ich eine zweiseitige Europakarte mit 6502 - 6522 - 6232 und akkugestütztem RAM mit Brady-Band von Hand geklebt. Für teuer Geld wurde ein InCircuitEmulator für den 6502 angeschafft, oh man, wieviele Stunden habe ich damit Fehler gejagt :-) Ein paar Jahre später kam eine etwa Zigarettenschachtelgroße Platine mit 68HC805 und achtstelligem LED-Textdisplay drauf, mein damaliger Arduino für allen möglichen Kleinkram in der Prüftechnik. In den USA anrufen brauchte ich nicht, Datenbücher in Papierform konnte ich vom deutschen Vertreter abbetteln. Ja, ich habe mich gefreut, nach mehreren Tagen einen Schalter abfragen zu können und damit eine LED ein- / ausschalten zu können. Aber, wenn wir mal ehrlich sind: Was wäre gewesen, wenn wir damals schon ein Forum gehabt hätten, wo wir fragen können? Ich habe viele Jahre nichts mehr gemacht, keinerlei Ahnung von Hochsprachen und mir dann 2015 einen China-Uno gekauft. Ich war beeindruckt, wie schnell und einfach ich da zu einfachen Grundfunktionen gekommen bin. Ich darf aber nicht ignorieren, dass mir da Grundlagen eines Prozessors und der umgebenden Schaltungstechnik vertraut waren. Sei es so, wie geht man mit den Totalanfängern im Forum um? Erinnere ich mich an Praktikanten und Lehrlinge, die hatte ich 8 Stunden pro Tag direkt hinter mir sitzend in der Werkstatt, da konne man im direkten Dialog besser drauf eingehen und auch mal schütteln, wenn es zu bunt wurde.
Jens N. schrieb: > Und das ich so Sachen schreiben kann wie: "Pinmode()" ist doch aber > Arduino spezifisch, nicht? Nein, in jeder Programmierumgebung kannst du eine Library verwenden, die eine Funktion wie Pinmode() zur Verfügung stellt. Wenn niemand diese Library geschrieben hat, musst du es selbst tun. Bei Arduino hat es jemand für dich getan. In der Arduino-IDE bekommst du allerdings dein Hauptprogramm normalerweise nie zu sehen, sondern stellst manchmal oft nur die beiden Grundfunktionen setup() und loop() zur Verfügung. Der Rest passiert im Hintergrund und wird vor dem Nutzer verborgen.
Warum schaut eigentlich keiner in GitHub: https://github.com/arduino-libraries/LiquidCrystal/tree/master/src
Markus schrieb: > Warum schaut eigentlich keiner in GitHub: > https://github.com/arduino-libraries/LiquidCrystal/tree/master/src Oha... Interessante Anmache! Da bleibt nur eine Frage offen: Was hat das mit der Frage zu tun? Alternativ: Was hilft dem TO das?
Jens N. schrieb: > Bisher ging ich davon aus das eine IDE das Programm ist welches das > programmieren ermöglicht. Zum "ermöglichen" gehört die gesamte Arbeitsumgebung, im Wesentlichen: - Ein Text-Editor, um den Quelltext zu schreiben - Ein C++ Compiler, um den Quelltext in Maschinencode zu übersetzen - Ein Programmieradapter+Software, um den Maschinencode in den Mikrocontroller zu übertragen Als Texteditor kommt im einfachsten Fall Notepad in frage. Wenn du willst, aknnst du auch Word benutzen - das ist dem Compiler egal. Hauptsache ist, dass du die C++ Dateien im Plain-Text Format speicherst. Als C++ Compiler kommt in deinem Fall der avr-gcc zum Einsatz, der mit einer abgespeckten Variante der Standard-C Library daher kommt. Diese Library enthält nützliche Funktionen wie atoi() und sprintf(). Darüber hinaus wird der avr-gcc zusammen mit einigen AVR Spezifischen C Libraries geliefert. Arduino stellt dazu weitere C++ Objekte (z.B. Wire und Serial) bereit und definiert eine Hand voll Standard C Funktionen, um einfache Dinge unabhängig vom konkreten Mikrocontroller Modell programmieren zu können. Zum Beispiel: millis(), pinMode(), digitalWrite(), analogRead() Um Fehler zu untersuchen kann es sehr hilfreich sein, entweder einen Debugger oder ein serielles Terminal Programm mit dem µC zu verbinden. Damit kann man den Programmablauf beobachten und den Inhalt von Variablen anzeigen. Bei Arduino hat man sich für die billigere Variante mit dem seriellen Terminal entschieden. Wohl auch, weil die ersten verwendeten AVR Controller gar keine Debugger Schnittstelle hatten. Um diese zahlreichen Software Komponenten Anfängerfreundlich zu bündeln, wurde die Arduino IDE erstellt. Man kann Arduino auch ohne die IDE nutzen, dann bewegt man sich im Konsolen-Fenster (Eingabeaufforderung) und sieht all die vielen Einzelkomponenten vor sich. Zusammen mit der IDE haben die Erfinder sich auch einige anfängerfreundliche Boards ausgedacht, wo der Mikrocontroller zusammen mit einem USB Adapter und einem Spannungsregler zusammen gebracht wird. Damit kann man ohne Lötkolben und Elektronik Kenntnisse direkt los programmieren. > Arduino ist für mich eine Marke die Mikrocontroller Endverbraucher > freundlich verbaut Ja > und einen C Dialekt entwickelt hat, sodass dem > Unerfahrenen das programmieren leichter von der Hand geht. Nein. Bei Arduino wird ein ganz gewöhnlicher vollwertiger C/C++ Compiler verwendet. Es ist der selbe Compiler, der auch im Atmel Studio enthalten ist. Er wird auch für die Entwicklung von Linux, ARM basierte Mikrocontroller (auch Android) und für einige Windows Programme verwendet. Was sie entwickelt haben, sind eine Hand voll C Funktionen und C++ Klassen, welche die Hardware abstrahieren. Sie haben ihre Anleitung auf möglichst wenig Text reduziert und viele verzichtbare Spach-Features weg gelassen. Das bringt in der Tat eine erhebliche Erleichterung für Anfänger. Fortgeschrittene Programmierer ärgern sich allerdings häufig über langsame Ausführung und beschränkten Funktionsumfang. Man kann die Hardware ohne Nutzung der Arduino Funktionen/Klassen wesentlich besser ausnutzen. Ist dann halt auch komplexer. Das schöne ist: Arduino hindert niemanden daran, fort zu schreiten. Hier im Forum ärgern sich einige Leute darüber, dass Arduino zu der Idee verleitet "Ich stecke mal was zusammen, klicke ein bisschen, und dann weiß das Ding schon, was ich ich wollte". Diese Leute reagieren teilweise frustriert, wenn sie erfahren, dass man doch lernen muss und merken, dass die einfache Arduino Fassade mehr ein Lockmittel war, als der Stand der Technik. Andererseits hat dieses System viele Menschen dazu gebracht, sich mit dem Thema überhaupt auseinander zu setzen. Noch nie war der Einstieg in die Computertechnik so einfach und billig, wie heute.
Jens N. schrieb: > Ist die Libary nun das Rezept und der GCC eine andere Kuchenform? > > Oder anders: Was bringt mir die Libary und was ist ein GCC Kompiler? die LIB ist das Rezept, die z.B. mit der Kuchenform mitgeliefert wird: http://www.backformen-onlineshop.de/Backrezepte Der GCC ist die Kuchenform, die muss natürlich passen, mit einer Kastenform ist es schwer runde Tortenböden zu backen auch wenn das Rezept passt.
:
Bearbeitet durch User
>Markus schrieb: >> Warum schaut eigentlich keiner in GitHub: >> https://github.com/arduino-libraries/LiquidCrystal/tree/master/src >Oha... >Interessante Anmache! >Da bleibt nur eine Frage offen: >Was hat das mit der Frage zu tun? "Arduino LCD Befehle"? Sind in der Header-Datei: https://github.com/arduino-libraries/LiquidCrystal/blob/master/src/LiquidCrystal.h >Alternativ: Was hilft dem TO das? Er kann die Beispiele angucken: https://github.com/arduino-libraries/LiquidCrystal/tree/master/examples und die Kommentare im Code lesen: https://github.com/arduino-libraries/LiquidCrystal/blob/master/src/LiquidCrystal.cpp
Stefanus F. schrieb: > Ich halte den Vergleich mit der Kuchenform für irreführend. das ist mir egal, machs besser oder schweige
Jens N. schrieb: > Was mir in den zur Verfügung gestellten Unterlagen fehlt ist eine > Erklärung warum das so ist. LCD_CONFIG scheint kein Standard zu sein, Google findet da nichts. Das muß also ein spezielles Macro nur für Deine Lehrveranstaltungen sein, d.h. eine Erklärung sollte in Deinen Begleitunterlagen stehen. Du mußt also selber suchen, wo dieses Macro definiert und erläutert ist. Es ist leider auch denkbar, daß die Unterlagen unvollständig sind und der Lehrer es nur mündlich erklärt hat. Es wird zwar schnell mal was hinprogrammiert aber nur unwillig auch dokumentiert.
Jens N. schrieb: > Ich denke das die Kompetenz sich Wissen anzueignen, ohne jemanden zu > fragen, ohne schöne Schritt für Schritt Erklärung. Eine Fähigkeit ist an > der ich arbeiten sollte. Das sehe ich ja ein. Sehr gute Erkenntnis, ja. > ... Pinmode() ... Guter Anfang: 1) Groß- u. Kleinschreibung ist (bei C/C++) nicht egal. 2) https://www.google.com/search?q=pinmode Erstes Ergebnis: pinMode() - Arduino Reference Damit kannst du auch schon deine Frage beantworten. leo
Stefanus F. schrieb: > Ich halte den Vergleich mit der Kuchenform für irreführend. Joachim B. schrieb: > das ist mir egal, machs besser oder schweige Habe ich doch, lies meine Erklärung direkt darüber!
Markus schrieb: >>Da bleibt nur eine Frage offen: >>Was hat das mit der Frage zu tun? > "Arduino LCD Befehle"? > Sind in der Header-Datei: > https://github.com/arduino-libraries/LiquidCrystal/blob/master/src/LiquidCrystal.h Dumm nur, dass das vom TO verwendete LCD_CONFIG() nichts mit der von dir verlinkten LCD-Bibliothek zu tun hat.
Stefanus F. schrieb: > Habe ich doch, lies meine Erklärung direkt darüber! verdammt viel Text, da geben schon viele vorher auf, erst Recht Anfänger, sonst OK. Zur Erklärung für Oma finde ich deinen Text unpassend und meinen leichter, wenngleich ich einräume es nur rudimentär erklärt zu haben. Wie du sicher weisst nicht alles was hinkt ist ein Vergleich und nicht alles ist leicht erklärbar, ich habe es wenigstens für Oma versucht, ich denke mit deiner eventuell besseren Erklärung würdest du bei Oma scheitern.
Joachim B. schrieb: > ich denke mit deiner eventuell besseren Erklärung > würdest du bei Oma scheitern. Meiner Oma würde ich sagen: Das verstehst du nicht. Meinem Opa habe ich mal Erklärt was Programmieren ist. Der hat das auch verstanden, weil er früher mechanische Webstühle eingestellt hat. "Die Vorschrift eingeben" nannte er den Vorgang, den wir heute Programmieren nennen. Was bei uns heute Flash Speicher sind, war bei ihm ein großen Brett mit hunderten kleinen Hebeln.
>Meinem Opa habe ich mal Erklärt was Programmieren ist. Der hat das auch >verstanden, weil er früher mechanische Webstühle eingestellt hat. Haha, das passt. Im Buch von Eschbach https://www.amazon.de/NSA-Nationales-Sicherheits-Amt-Andreas-Eschbach-ebook/dp/B07D18P88V gibt's nur Frauen, die programmieren. Sie nennen sich dort "Programmstrickerinen".
Wolfgang schrieb: > Dumm nur, dass das vom TO verwendete LCD_CONFIG() nichts mit der von dir > verlinkten LCD-Bibliothek zu tun hat. In einer normalen IDE würde man einfach die Steuerungstaste (oder so) drücken, auf LCD_CONFIG() klicken und schwups wäre man da. Bei der Ardunio IDE bleibt evtl. nur die Suche nach dem Text "LCD_CONFIG()" in den Dateien auf dem Rechner. Also Suche mit Betriebssystem Mitteln, Dateimanage etc. (kenne mich mit Arduino aber nicht wirklich aus) Da braucht man eigentlich kein Internet. Irgendwo auf dem Rechner muss es ja sein, sonst wüsste der Compiler auch nichts damit anzufangen und würde meckern. Wenn man so oft genug gesucht hat, werden möglicherweise auch die Zusammenhänge klarer.
Volker S. schrieb: > In einer normalen IDE würde man einfach die Steuerungstaste (oder so) > drücken, auf LCD_CONFIG() klicken und schwups wäre man da. > > Bei der Ardunio IDE bleibt evtl. nur die Suche nach dem Text > "LCD_CONFIG()" in den Dateien auf dem Rechner. Also Suche mit > Betriebssystem Mitteln, Dateimanage etc. (kenne mich mit Arduino aber > nicht wirklich aus) > > Da braucht man eigentlich kein Internet. Irgendwo auf dem Rechner muss > es ja sein, sonst wüsste der Compiler auch nichts damit anzufangen und > würde meckern. > > Wenn man so oft genug gesucht hat, werden möglicherweise auch die > Zusammenhänge klarer. Das haben wir alles schon geklärt... (teilweise, auch mehrfach) Das Kommando, oder was auch immer das sein soll, gibt es in der üblichen Arduino Welt nicht. Darum kann ihm auch keiner direkt helfen. Und er selber hat schon gefunden, in welcher Datei es steckt. Es fehlen nur massiv Grundlagen, um das Gedöns zu verstehen. Da ist jetzt Eigeninitiative angesagt... aber dafür fehlt dann wohl die Zeit.
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.