Guten abend, ich programmiere einen PIC mit MPLAB X. Dazu möchte ich gerne für mein display funktionen schreiben, sodass ich dieses einfach benutzen kann. aber nun zu meiner frage. Was versteht man genau unter einer library? ich hätte jetzt von https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung die .h und .c file für pics umgeschrieben und hätte gesagt, dass das eine library ist. allerdings sehe ich project-window mehrere ordner (header files, source files) aber auch Libraries. also meine frage ist nun, was ist genau eine library und wie kann ich die erzeugen? Heidi
Das Thema kannst du am Anfang erst mal komplett ignorieren. Einfach .h und .c Dateien schreiben/kopieren/umschreiben. Wenn deine Projekte später mal so kompliziert sind, dass man Libraries braucht, kannst du dich immer noch drum kümmern. P.S. Bei der MPLAB X finden sich auch ein paar .h und .c Dateien für LCDs. Am besten du kopierst diese in dein Projekt und passt sie an die von dir benutzten Pins an.
Ich glaube, Libraries sind wiederverwendbare Codes, die compilierter Form bereitgestellt werden und (im Falle von C) mit Hilfe von Header Dateien vom Linker in das Programm eingebunden werden. Bei Java entfallen die Header Dateien. Ich habe aber auch schon einige Projekte gesehen, wo der Begriff allgemeiner für Quellcode-Sammlungen verwendet wurde, die dazu gedacht sind, in Projekte eingebunden zu werden.
ja, es gibt eine xlcd.h, die ist aber nur zu gebrauchen wenn man einen pic mit min. 64pins hat (wenn ich das richtig verstanden habe) und den habe ich nicht. So konnte ich einfach noch ein bisschen selber programmieren und nicht alles einfach nur einfügen. und es funktioniert ja schon. Dann werde ich es auch dabei belassen. gibt es denn trotzdem irgendwo etwas zu lesen, was eine library ist und wie diese aufgebaut, bzw. erstellt werden kann? Einfach nur interesse halber.
Stefan Us schrieb: > Ich glaube, Libraries sind wiederverwendbare Codes, die > compilierter > Form bereitgestellt werden und (im Falle von C) mit Hilfe von Header > Dateien vom Linker in das Programm eingebunden werden. Bei Java > entfallen die Header Dateien. Der Linker interessiert sich nicht für Header. Die sieht nur der Compiler. Der sieht dafür die Library an sich nicht. Ansonsten hast du im Prinzip recht. Eine griffigere Definition wäre wohl "Objektcode, der linkfähig ist".
Soweit ich mich erinnere, ist die LCD-Library für alle Pics, aber für
eine spezielle Portbelegung kompiliert.
Du kannst aber die xlcd.h und sources/pic18/plib/XLCD/*c in dein Projekt
kopieren und dann die xlcd.h an deinen Pic anpassen.
(Weiß nicht mehr, ob man die Funkionen in den *.c umbenennen musste.)
> gibt es denn trotzdem irgendwo etwas zu lesen, was eine library ist
Dummerweise wird bei Mikrocontrollern der Begriff Library für
unterschiedliche Sachen benutzt.
Es gibt zwar kompilierte Libraries, wie bei PCs, aber wie du im obigen
Beispiel siehst, klappt das bei Mikrocontrollern nicht. Den LCD-Port
z.B. kannst du nach dem kompilieren nicht mehr ändern.
Man gewöhnt sich einfach dran, dass jeder mit "Library" was anderes
meint.
Noch einer schrieb: > Soweit ich mich erinnere, ist die LCD-Library für alle Pics, aber für > eine spezielle Portbelegung kompiliert. Das sind nur sogenannte "Exempels", uncompilierte C-Sorces. http://www.microchip.com/CodeExamplesByFunc.aspx http://ww1.microchip.com/downloads/en/DeviceDoc/External_LCD.zip
Hallo Heidi (Gast) Für mich ist ein Library eine Ansammlung wiederverwendbarer Unterprogramme, welche man wie im angesprochenen Fall z.B. zum Ansteuern eines LCDs verwenden kann. Für die bisherigen Anwendungen hat die als Beispiel beigefügte HD44780.INC bisher stets ausgereicht die Ausgaben im LCD zeilen- und spaltengerecht formatiert auszugeben. Anmerkung: Ich behaupte keinesfalls dass die beigefügte Datei fehlerfrei ist oder nicht noch verbessert werden könnte... :-) mfG Ottmar
Teo Derix schrieb: > Das sind nur sogenannte "Exempels", uncompilierte C-Sorces. Schön wär's. Idiotischerweise sind die Funktionen vor-kompiliert in vielen Prozessorbibliotheken (*.lib) enthalten :-(
> Idiotischerweise sind die Funktionen vor-kompiliert
Ja, wirklich idiotisch. Für Userspace Programme unter einem
Betriebssystem sind vor-kompilierte Libraries eine tolle Sache.
Anscheinend haben die nur gelesen "Libraries sind wiederverwendbare
Codes, die compilierter Form bereitgestellt werden". Nicht weiter
nachgedacht, ob so etwas auf Mikrocontrollern überhaupt sinnvoll ist.
Vielleicht sollten die Entwickler dieser IDEs erst mal fragen: "Was
genau ist eine Library?"
Aber Hallo! library ist zuerst einmal eine Bibliothek! Also ein Haus mit vielen Büchern drin. Oder Vieles andre, was ähnlich ist. Wenn innerhalb einer Programmiersprache dieser Begriff benutzt wird, hängt das ganz von der Willkür des Erdichters der Programmiersprache oder des Programms ab. In EAGLE ist die Ansammlung vorgefertigter Zeichnungselemente eine lib. In Programmiersprachen ist meist die Ansammlung von Programmschnipseln als lib bezeichnet. In Schreibprogrammen kann lib. eine Ansammlung von Textbausteinen sein. Für eine sinnvolle Antwort braucht man doch genau den Kontext, in dem diese lib erzeugt bzw benutzt wird. Also, welche IDE, welche Programmiersprache, welches Programm. Erst dann kann man mit einem Antwortversuch losnebeln.
Noch einer schrieb: >> Idiotischerweise sind die Funktionen vor-kompiliert > > Ja, wirklich idiotisch. Das ist ueberhaupt nicht idiotisch. Man hat dadurch einen funktionsfaehigen Code,den man sofort einbinden kann.Natuerlich muss man dazu kurz einen Blick auf die Dokumentation der Lib werfen,damit man weiss an welche Pins das Display fuer diesen compilierten Code angeschlossen werden muss. Wem die Pinbelegung nicht passt,der kann dann auch ganz einfach den mitgelieferten Sourcecode benutzen ,die Pins neu deklarieren und danach den Code ganz einfach als Unterprogramm in das eigene Programm einbetten. Oder man geht noch einen Schritt weiter und kompiliert den veraenderten Sourcecode fuer eine neue eigene Library. C18-Library Dokumentation http://www.google.ie/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CCEQFjAA&url=http%3A%2F%2Fww1.microchip.com%2Fdownloads%2Fen%2FDeviceDoc%2FMPLAB_C18_Libraries_51297f.pdf&ei=sY1gVaupE8HxUNG5gbAL&usg=AFQjCNGwh6e-oqBjRp2KMfZK-qXD3FNnCA&bvm=bv.93990622,d.d24&cad=rja Sourcecode fuer LCDdisplay-Pic : siehe Anhang
Toxic schrieb: > Wem die Pinbelegung nicht passt,der kann dann auch ganz einfach Mir hat die Pinbelegung noch nie gepasst ;-) Wenn man die Menge von Threads im MCHP Forum sieht scheint es such nicht sooo einfach zu sein. Die allermeisten Anfänger lesen nun mail keine Doku oder denken es ist mit den Anpassen des Headers getan.
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.