Das Ausmaß der Software nimmt langsam Katastrophale Zustände an.
Die Kommunikation über das Obd Protokoll wird komplett über Interrupts gehandhabt und läuft transparent im Hintergrund ab. Ein kleiner Scheduler sorgt dafür, dass Werte regelmäßig über Obd abgefragt werden. Er bestimmt welche PID an der Reihe ist und informiert das Hauptprogramm über neu empfangene Daten.
Das Hauptprogramm kümmert sich dann um die Darstellung der Werte auf dem Display. Im Moment geschieht dies noch als Text / Balkendiagramm. Der Strukturierte Aufbau ermöglicht es allerdings ohne viel Aufwand neue Zeichenfunktionen zu schreiben.
Um das alles zu realisieren waren einige Klimmzüge notwendig und in der Source sind jetzt ein paar dicke Dinger drin. Z.b. Eine Statemachine, die sich über 3 verschiedene Interrupt service routinen erstreckt oder eine 3 fach verschachtelte Switch Case Anweisung :p
Egal, das ding tut.
Aktuelle Bilder stell ich später noch rein.
Hiermit möchte ich nochmal bei allen bedanken, bei denen ich Code geklaut habe :p
das wären im einzelnen:
Die Kommunikation über das Obd Protokoll wird komplett über Interrupts gehandhabt und läuft transparent im Hintergrund ab. Ein kleiner Scheduler sorgt dafür, dass Werte regelmäßig über Obd abgefragt werden. Er bestimmt welche PID an der Reihe ist und informiert das Hauptprogramm über neu empfangene Daten.
Das Hauptprogramm kümmert sich dann um die Darstellung der Werte auf dem Display. Im Moment geschieht dies noch als Text / Balkendiagramm. Der Strukturierte Aufbau ermöglicht es allerdings ohne viel Aufwand neue Zeichenfunktionen zu schreiben.
Um das alles zu realisieren waren einige Klimmzüge notwendig und in der Source sind jetzt ein paar dicke Dinger drin. Z.b. Eine Statemachine, die sich über 3 verschiedene Interrupt service routinen erstreckt oder eine 3 fach verschachtelte Switch Case Anweisung :p
Egal, das ding tut.
Aktuelle Bilder stell ich später noch rein.
Hiermit möchte ich nochmal bei allen bedanken, bei denen ich Code geklaut habe :p
das wären im einzelnen:
- Hagen R. für die Grafikfunktionen fürs Display und das ausgefuchste eventbasierte Menüsystem
- Christian K. für das reverse engineering des Siemens S65 Displays
- Elm Chan für die SD Karten Ansteuerung und die Bibliotheken zum FAT32 Dateisystem (soon 2 come)
- Objective Development für den Firmware only USB Treiber (wird im Bootloader verwendet)
No comments:
Post a Comment