was mittlerweile dazu kam:
Encoder: Ist mit in die Interrupt-Zeitscheibe aufgenommen. Zeitscheibe auf 3ms verkürzt, damit die Encodersignale nicht durchflutschen.
Menü: Eine Menü-Struktur wurde angelegt und halbwegs mit Leben
gefüllt. Ich war und bin mir immer noch unsicher, ob die "Menü-Philosophie"
bzgl. der Programmierung die vernünftigste ist. Da kann man wahrscheinlich lange
diskutieren...
Kurzbeschreibung: Hauptmenu "Datenfunk" mit Auswahl von Sat und Kanal zum
Auslesen und Relais schalten, Hauptmenü "Einstellen" für ID-Vergabe. Der Rest
ist angedacht... Eine Statuszeile zeigt Fehler und Sat-Batteriespannung an.
Konfiguration: die ganzen Kanaltypen aller Sats werden im EEPROM der Basis gespeichert. Die Menü-Führung für die Einstellung fehlt noch.
Neu: Ein Sat wurde auf Lochraster gebaut. Der hängt jetzt schon im Zählerkasten vom Haus und macht diverses.
Initialisierung: Ein "neuer" Sat fragt alle 2 Sekunden an, eine ID von der Basis zugewiesen zu bekommen. Ist die Basis aktiv, wird dem Sat eine ID gesendet, die dieser in seinem EEPROM ablegt. Erst dann funktioniert der Sat normal - erstmal mit default-Einstellungen.
Batteriespannungsüberwachung: alle 10 Sekunden wird im Sat die Batteriespannung gemessen. Fällt sie auf 3,2V, schickt der Satellit von sich aus Warnungen an die Basis, bei 3,1V geht der Sat in Dauer-Sleepmodus.
Sensorversorgung: schaltbare Spannungsversorgung, die auch den AREF-Eingang belegt. Zusammen mit dem Port zur Abschaltung der Sensorversorgung fallen damit 2 Ports weg zur freien Verfügung. Also nur noch 9 Kanäle, 8 digitale/ADC und ein evtl. DAC (siehe Schaltplan).
Hardware
Software (V4.0)
Hex-Files (repräsentieren den Stand entsprechend der Schaltpläne)
Doku-Ware
Archiv-Ware
V1.0:
Basis fragt permament den Sat nach einem Kanal und zeigt den ADC-Wert im Display an
V2.0:
CommonDefs.h (alle #defines, die für Basis und Sat gelten, damit die gleiche Sprache gesprochen wird)
Sat ist auf 11 Kanäle festgelegt (neuer Schaltplan!!!), max. 9 ADCs und 2 Schalt- bzw. digitale Kanäle, einer davon evtl. auch als DAC-Kanal
Basis kann alle ADC-Kanäle abfragen
V3.0:
Sat ist mit Wakeup ausgestattet, alle 128ms wird gekuckt, ob der Sender in der Luft hängt, wenn ja, 1sec. lang auf ein Paket warten, kommt nix, wieder schlafen
Sat braucht auf diese Art im Mittel mal ganze 37µA, womit der 190mAh-Akku 211 Tage reicht. Das ist aber ohne Sendeereignisse und Sensorverbrauch gerechnet.
Basis sendet 70ms 0xAA um Sat aufzuwecken, dann die Daten. Das muß noch verfeinert werden, sodaß nicht vor jedem Datensenden ein Wakeup-Ruf kommt
Temperaturmessung: Der Satellit sendet einen Spannungswert von einem Teiler mit NTC. Dieser Wert wird in der Basis mit einer Tabelle umgerechnet und angezeigt.
Die Tabelle ist das Ergebnis eines Abgleichs und Anwenden eines möglichst einfachen Rückrechen-Algorithmus im Mega16. Dazu gibt's eine Excel-Tabelle in der Library.
Versorgungs-Spannungsmessung: Der Satellit mißt mit dem RFM-Modul die Versorgungsspannung und sendet sie an die Basis; dort wird sie aufbereitet und angezeigt.