kowolfgang
26.06.2009, 17:44
Hallo,
ich bastel mir gerade ein kleines Slave Gerätchen für meinen RS485 Hausbus bestehend aus einem ATMega88 einem Display und ein bisschen Hühnerfutter.
Das Gerät soll die Vor und Rücklauf Temperaturen der Heizung mit 1wire Sensoren (DS18B20) messen und auf Anfrage die Daten über den Bus verschicken. Nebenbei sollen im Display noch die aktuellen Temperaturen mit den zugehörigen Sensornamen durchscrollen damit man die Temperaturen auch vor Ort ablesen kann.
Gleichzeitig soll das Gerät über nur den RS485 Bus konfigurierbar sein, also will ich die 1Wire Adressen und die Sensornamen in EEPROM vom Controller speichern.
Gerade hier hackts bei mir. Ich will im Programm die Namen und Adressen der Sensoren schonmal vorprogrammieren damit ichs später bei der Inbetriebname leichter hab, allerdings weiß ich nicht wie.
Die Adresse wird mit dem zugehörigen Namen in einer Struktur gespeichert, diese Struktur steckt wiederum in einem 10-feldigem Array das es sowohl im EEPROM als auch im RAM geben soll. Die Werte sollen beim Programmstart aus dem EEPROM in den RAM kopiert werden damit der EEPROM den Programmablauf nicht so stark bremst allerdings weiß ich nicht 1. wie man die Werte in diesem konstrukt aus Arrays und Structs vorbelegen kann und 2. wie man das ganze beim Programmstart sauber aus dem EEPROM ins RAM bringt.
typedef struct {
uint8_t label[16];
uint8_t rom_code[8];
} Sensor_Struct;
Sensor_Struct EE_Sensor[MAXSENSORS] EEMEM ;
Sensor_Struct Work_Sensor[MAXSENSORS] ;
Könnt ihr mir da nen paar Tipps geben wie man das elegant löst?? Ich kau da jetz schon ziemlich lange (4 Wochen) dran und mir is noch nix tolles eingefallen.
ich bastel mir gerade ein kleines Slave Gerätchen für meinen RS485 Hausbus bestehend aus einem ATMega88 einem Display und ein bisschen Hühnerfutter.
Das Gerät soll die Vor und Rücklauf Temperaturen der Heizung mit 1wire Sensoren (DS18B20) messen und auf Anfrage die Daten über den Bus verschicken. Nebenbei sollen im Display noch die aktuellen Temperaturen mit den zugehörigen Sensornamen durchscrollen damit man die Temperaturen auch vor Ort ablesen kann.
Gleichzeitig soll das Gerät über nur den RS485 Bus konfigurierbar sein, also will ich die 1Wire Adressen und die Sensornamen in EEPROM vom Controller speichern.
Gerade hier hackts bei mir. Ich will im Programm die Namen und Adressen der Sensoren schonmal vorprogrammieren damit ichs später bei der Inbetriebname leichter hab, allerdings weiß ich nicht wie.
Die Adresse wird mit dem zugehörigen Namen in einer Struktur gespeichert, diese Struktur steckt wiederum in einem 10-feldigem Array das es sowohl im EEPROM als auch im RAM geben soll. Die Werte sollen beim Programmstart aus dem EEPROM in den RAM kopiert werden damit der EEPROM den Programmablauf nicht so stark bremst allerdings weiß ich nicht 1. wie man die Werte in diesem konstrukt aus Arrays und Structs vorbelegen kann und 2. wie man das ganze beim Programmstart sauber aus dem EEPROM ins RAM bringt.
typedef struct {
uint8_t label[16];
uint8_t rom_code[8];
} Sensor_Struct;
Sensor_Struct EE_Sensor[MAXSENSORS] EEMEM ;
Sensor_Struct Work_Sensor[MAXSENSORS] ;
Könnt ihr mir da nen paar Tipps geben wie man das elegant löst?? Ich kau da jetz schon ziemlich lange (4 Wochen) dran und mir is noch nix tolles eingefallen.