Julian von Mendel: (C) Funktion soll Pointer zurückgeben

Beitrag lesen

Hi Tom,

Ein wirklich tolles Projekt habt ihr da am laufen, Respekt!

dankeschön. Du kennst ja jetzt nur den softwaretechnischen Teil der Programmbibliothek, wüsstest du was wir geniales draus bauen fändest du das Projekt noch viel interessanter *g*. In dem nächsten 4 Monaten plane ich die 400 Zeilen C-Code inkl. Dokumentation auf meiner Internetseite zu veröffentlichen

Besser wäre noch, wenn du den Erfolg der Aktion über den Rückgabewert prüfbar machst. In deinem eigentlichen Programmcode definierst du dann Konstanten für die Pins, so dass du sie nach belieben vertauschen kannst (1x Kabel umhängen + 1x Konstante anpassen).

Ist schon so. Die momentane Lösung abstrahiert und funktioniert, lässt sich sauber ansteuern, ist nur programmtechnisch gesehen nicht perfekt, sobald weitere Funktionen benötigt werden, die IOs ansteuern (momentan habe ich nur io_set und io_get um Ein-/Ausgänge zu setzen und Eingänge zu lesen, Funktionen für den Analog-Digital-Konverter z. B. benötigen ja keine speziellen Register für den Pin, sondern nur eine Nummer, die sich aus der IO-Nummer direkt ableiten lässt, die für die Servos können io_set aufrufen, und müssen deshalb ebenfalls keine Register den Pins zuordnen). D. h. ich werde deinen Hinweis und den von Hopsel bei Gelegenheit und Zeit ausprobieren, da das jedoch keine Änderung an der Ansteuerung der Funktionen zur Folge hat und die Änderungen nur für zukünftige Entwicklungen einen Vorteil haben können ist es eigentlich nicht dringend. Danke natürlich für deine Ausführung.

Was du hier entwickelst verschönert nicht nur deinen Programmcode, es enkoppelt auch gleich die Programmlogik von der Hardware. Wenn du das konsequent durchziest hast du am Schluss ein sog. HAL, ein Hardware Abstraction Layer. Das hat den Vorteil, dass du deinen Programmcode auch direkt auf dem PC oder einem anderen uC laufen lassen kannst, wenn du dafür eine eigene Abwandlung der HAL-Funktionen schreibst.

Ja. Die Anpassung der Bibliothek wäre natürlich aber mit einem größeren Aufwand verbunden. Aber du hast recht, theoretisch könnte man einfach durch das Inkludieren einer anderen Datei die Sache mit einem anderen Mikrocontroller laufen lassen. Ein standadisiertes Interface und die Ausgliederung der Hardware-spezifischen Aspekte aus dem Hauptprogramm schadet sicher nicht,

PS: Kennst du http://www.mikrocontroller.net?

Klar. Ich habe in meinem Mikrocontroller-Tutorial (http://derjulian.net/pages/mikrocontroller) mehrmals drauf verwiesen, da das dortige AVR-GCC-Tutorial sehr gut und ausführlich ist.

Schöne Grüße
Julian