Library für Hardware erstellen

Hallo zusammen,

mich interessiert wie man eine Arduino Library für eine bestimmte Hardware-Komponente erstellen kann. Wie ist das Vorgehen wenn ich das DataSheet vom Hersteller habe? Gibt es hierfür eine Anleitung oder ein gutes Buch das ihr mir empfehlen könnt?

Gruss Oliver

Bist Du sicher daß es nicht bereits eine Bibliothek für Deine Hardware gibt? Was willst Du ansteuern?

Die Ansteuerung der Hardware mußt Du mit dem Datasheet hinbekommen. Zum Testen und Entwickeln der Ansteuerung kannst Du es auch einfach in einem Sketch machen. Die Funktionen dann in eine Bibliothek zu geben gibt es das Beispiel: http://arduino.cc/en/Hacking/LibraryTutorial

grüße Uwe

Olinolte:
mich interessiert wie man eine Arduino Library für eine bestimmte Hardware-Komponente erstellen kann. Wie ist das Vorgehen wenn ich das DataSheet vom Hersteller habe?

Wie man vom Prinzip her eine Library für Arduino erstellt, wird in dieser Anleitung erklärt:
http://playground.arduino.cc/Code/Library

Außerdem ist es nicht verboten, in diverse bereits existierende Arduino-Libraries reinzuschauen, wie es dort gemacht wird.

Olinolte:
Gibt es hierfür eine Anleitung oder ein gutes Buch das ihr mir empfehlen könnt?

Nein, nicht zu jedem Datenblatt gibt es ein Buch!

Eine Anleitung gibt es schon. Geht aber nicht auf die Hardware idR ein.
Du musst die Libary selber schreiben. Schreib doch erst einmal deine Ino und lager alles aus in extra Funktionen aus. Dann kann man weiterreden.

Ich bin glaube ich missverstanden worden. Wie man eine Library erstellt ist mir klar. mir geht es darum wie man ein Datenblatt in Code umsetzten kann. Also z.b. habe ich einen ILI9327 Diplay-Driver IC, wie muss ich nun vorgehen um den Code für die Ansteuerung zu schreiben. Dieser IC ist nur ein Beispiel, ich weiss dass es dafür bereits eine Library gibt. Mich würde es einfach nur interessieren wie man in einem solchen fall vorgehen würde.

Gruss Oliver

Aus dem Datenblatt, den Application Note des Herstellers bzw aus Beispielcode, die der Hersteller zur Verfügung stellt mußt Du draufkommen wie man das IC / Modul ansteuerst. Daraus programmierst Du die Ansteuerung.

Grüße Uwe

Olinolte:
Also z.b. habe ich einen ILI9327 Diplay-Driver IC, wie muss ich nun vorgehen um den Code für die Ansteuerung zu schreiben. Dieser IC ist nur ein Beispiel, ich weiss dass es dafür bereits eine Library gibt. Mich würde es einfach nur interessieren wie man in einem solchen fall vorgehen würde.

Als erstes macht man eine Fachausbildung / Hochschulstudium in einer einschlägigen Fachrichtung mit Abschluss und erwirbt sich die Qualifikation, so etwas zu machen.

Nur wenn die anzusteuernde Hardware sehr viel einfacher ist als das von Dir gegebene LC-Driverbeispiel, reicht ggf. auch ein erfolgreicher Hauptschulabschluss mit etwas einschlägigem Selbststudium, um ein Datenblatt zu verstehen und in Code umzusetzen.

Also mit einem Abschluss als Dipl. wirtsch. Informatiker und 10Jahre Berufserfahrung sollte ich vermutlich über die grundlegenden Voraussetzungen verfügen so etwas zu machen. Da ich aber bislang nur im Bereich von Desktop und Web-Applikationen tätig war, ist mir der Bereich der hardwarenahen Programmierung noch nicht vertraut. Da mich dieser Bereich jedoch sehr interessiert möchte ich mich darin weiterbilden. Jedoch bin ich eben noch auf der Suche nach einem Guten Fachbuch um die Grundlagen lernen zu können.

Gruss Oliver

Wenn Du das einfach aus Neugier lernen willst dann fang mal mit etwas einfacherem als den ILI9327 an.

Viele ICs haben Register, die beschreiben werden können. Einfach gesagt Speicherstellen. Diese sind durchnummeriert. Je nach IC hat ein Bit, mehrere Bits oder alle 8 Bit eine gewisse Bedeutung.

Nehmen wir mal als Beispiel einen DS1307.

Dieser Real Time Clock (RTC) hat 64 Byte RAM, wobei die ersten 8 die Register für Zeit und Datum und einige Steuerbits sind.
Siehe Tabelle2 Seite 8

So zB hat die Speicherstelle an der Adresse 0 folgende Bedeutung:
Bit 0 bis 3 ist die Einserstelle der Sekunden im BCD-Format
Bit 4 bis 6 ist die Zehnerstelle der Sekunden im BCD-Format
Bit 7 ist das CH Bit . Im ersten Absatz auf der gleichen Seite ist es erklährt: CH Clock Halt bit. Wenn dies 1 gesetzt wird dann zählt die Uhr nicht weiter. Wenn es 0 gesetzt wird dann zählt die Uhr weiter. Es kann angehalten werden, wenn man nur das RAM benutzen will (nicht die Uhr -Funktion) um Strom zu sparen. Wenn die RTC das erstemal Strom bekommt, wird dieses Bit auf 1 gesetzt um anzuzeigen. daß die Zeit- und Datumswerte nicht richtig sind, weil sie nicht gesetzt wurden.

usw.

Gleichwohl erklährt das Datenblatt wie das Interface (I2C) funktoniert. Du kannst auch eine Bibliothek für den Baustein anschauen und da schauen was wie gemacht wird und was das im Datenblatt entspricht.

Ich weiß Dir kein Buch zu empfehlen.
Einfach mit etwas einfachem anfangen und uns mit Fragen löchern. :wink: zB DS1307, MCP4921, MCP23008, TLC5947, TLC5940, HD44780

Mehr weiß ich Dir nicht zu raten.

Grüße Uwe