Neuimplementierung von i-Telex
Verfasst: Mo 11. Mär 2024, 18:54
Ja ich habe mir schon überlegt das i-telex Protokoll in C zu implementieren. Kein großer Aufwand, an sich nur das Protokoll hat aus heutiger Sicht einige Stolpersteine. Gerade was variable BAUD Rates und andere dinge angeht ist der Header im Telegram etwas Unglück gebaut für mögliche Erweiterungen. Abwärtskompatibilität ist nur schwer zu erreichen, man muss immer mit mehren Versionen hantieren.
So etwas passiert eben wenn man aus einer Idee heraus etwas Entwickelt, sehr spät stellt sich dann heraus das man im untersten Stockwerk die Tür vergessen hat. Diese einzubauen gestaltet sich dann als sehr schwierig, da man dann auch alles oberhalb anpassen muss. Grundlegende Erfahrungen von Fehlern die man dann später nicht mehr macht
Ist denn das TWI Protokoll vom Bus beschrieben? Mir ist es auch nicht gelungen in Atmel Studio ein lauffähiges Projekt zu bauen vom i-telex. In der Struktur vom Code ist auch der Code der die Hardware bedient nicht ausgelagert. Das macht ein Portieren schwierig, wenn im eigentlichen Code Hardware bezogene dinge vorhanden sind -> Portregister gesetzt werden etc.
Besser ist es man packt diese in Hardwarehandler -> hinter der Funktion steht dann der Code bezogen zur Hardware. Der Vorteil ist das man dann nur den Hardware Code auf die Zielplattform anpassen muss und diese dann inkludiert. Macros gehen auch...
Außerhalb eines AVR Compilers kann ein anderer Compiler nichts mit den Anweisungen anfangen und dieser sind weit in dem gerammten Code verstreut.
So etwas passiert eben wenn man aus einer Idee heraus etwas Entwickelt, sehr spät stellt sich dann heraus das man im untersten Stockwerk die Tür vergessen hat. Diese einzubauen gestaltet sich dann als sehr schwierig, da man dann auch alles oberhalb anpassen muss. Grundlegende Erfahrungen von Fehlern die man dann später nicht mehr macht

Ist denn das TWI Protokoll vom Bus beschrieben? Mir ist es auch nicht gelungen in Atmel Studio ein lauffähiges Projekt zu bauen vom i-telex. In der Struktur vom Code ist auch der Code der die Hardware bedient nicht ausgelagert. Das macht ein Portieren schwierig, wenn im eigentlichen Code Hardware bezogene dinge vorhanden sind -> Portregister gesetzt werden etc.
Besser ist es man packt diese in Hardwarehandler ->
Code: Alles auswählen
set_pin(uint8_t port,uint8_t pin)
Außerhalb eines AVR Compilers kann ein anderer Compiler nichts mit den Anweisungen anfangen und dieser sind weit in dem gerammten Code verstreut.