]> git.zerfleddert.de Git - fnordlicht-mini/commitdiff
add initialization of node address via eeprom
authorgitknilch <gitknilch@cwde.de>
Wed, 16 Mar 2011 21:26:32 +0000 (22:26 +0100)
committergitknilch <gitknilch@cwde.de>
Wed, 16 Mar 2011 21:26:32 +0000 (22:26 +0100)
firmware/fnordlicht-firmware/fnordlicht.c
firmware/fnordlicht-firmware/storage.h

index b5e2ffec076261b4b3dd471683e3a41c9c48de15..f0b011b3f6fe8b4ff30013c66ab8494870a99634 100644 (file)
@@ -42,6 +42,8 @@ static void startup(void)
 {
     /* if configuration is valid */
     if (storage_valid_config()) {
+       /* set global address to stored value */
+       global_remote.address = startup_config.startup_addr;
 
         /* read default mode from storage (do nothing if mode is invalid) */
         if (startup_config.params.mode == STARTUP_PROGRAM) {
index 09e293d9c9e969b221d3265182a6bf370fce6037..76f352e58c065bb773a67d72fc2b98bf9b5dac3d 100644 (file)
@@ -44,27 +44,29 @@ struct storage_color_t
 #define EEPROM_MAGIC_BYTE 0x23
 
 /* store the startup configuration in EEPROM
- * size: 13 byte */
+ * size: 14 bytes */
 struct storage_config_t
 {
     /* magic byte, must match EEPROM_MAGIC_BYTE to mark a valid configuration */
     uint8_t magic;
-    /* startup parameters, defined in remote_proto.h, size: 12 byte */
+    /* initial node address to use at startup */
+    uint8_t startup_addr;
+    /* startup parameters, defined in remote_proto.h, size: 12 bytes */
     struct startup_parameters_t params;
 };
 
 /* storage structure for EEPROM
- * size: 494 byte
- * (means: 18 byte left) */
+ * size: 496 bytes
+ * (means: 16 bytes left) */
 struct storage_t
 {
-    /* startup configuration, size: 12 byte */
+    /* startup configuration, size: 14 bytes */
     struct storage_config_t config;
 
-    /* color storage, size: 60*8 == 480 byte */
+    /* color storage, size: 60*8 == 480 bytes */
     struct storage_color_t color[CONFIG_EEPROM_COLORS];
 
-    /* crc16 checksum over config and color[], size: 2 byte */
+    /* crc16 checksum over config and color[], size: 2 bytes */
     uint16_t checksum;
 };
 
Impressum, Datenschutz