Forum: Mikrocontroller und Digitale Elektronik Bibliotheken selbst anlegen


von Martin (Gast)


Lesenswert?

Hallo Profis!

Ich habe schon einige C Beispielprogramme geschrieben, mit
denen ich verschiedenste Bausteine ansprechen kann.
Für Atmel AVR und 8051.
Z.B. I2C-Bausteine, USB-Bausteine.

Nur habe ich hier den Fehler gemacht, dass nur das entwickelte
Programm selbst Zugriff auf den Baustein hat. Das heißt, ich
habe keine Bibliothek zum entsprechenden Baustein erstellt.
Das ist natürlich dumm, da man, wenn man den ensprechenden
Baustein in einem neuen Programm ansprechen möchte, im alten
Programm wieder herumsuchen und herauskopieren muss.

Um dies zu ändern lege ich gerade Bibliotheken an. Die Funktionen
können dann von jedem Programm verwendet werden.
Jedoch gibt es hierzu sicherlich einige Grundregeln, die man
beachten sollte und die ich nicht genau kenne.
Ein weiteres Problem ist, dass Atmel-AVR-Prozessoren und 8051er
nicht Hardwarekompatibel sind. Sollte ich hierzu zwei verschiedene
Bibliotheken anlegen?

Wenn ich einen gewöhnlichen I2C-Baustein anspreche gibt es z.B.
kein Problem.
Aber was soll ich tun, wenn ich z.B. eine Bibliothek für den Empfang
von Funksignalen erstellen möchte? Hierbei werde ich mit IRQ's
arbeiten müssen, um z.B. die Länge verschwiedener Signale messen zu
können. Wie soll man hier vorgehen? In wie weit soll man die
IRQ-Routine in die Bibliothek einbinden? Die Kompatibilität macht mir
hierbei zu schaffen.

Ich bin für jeden Tipp dankbar. Ich dachte mir ich frage im Vorhinein,
wie man soetwas aufzieht, da man viele Fehler auf diese Weise gleich
vorweg umgehen kann.

Danke Freunde

Tschüss

Martin

von Marko B. (Gast)


Lesenswert?

Interrupt-Routinen als Callback Functions implementieren und/oder RTOS
verwenden. Die Portabilität zwischen einzelnen Controllerfamilien wird
sich trotzdem immer in Grenzen halten.

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
Noch kein Account? Hier anmelden.