]> git.zerfleddert.de Git - fnordlicht-mini/commitdiff
remove master mode, disable uart tx
authorgitknilch <gitknilch@cwde.de>
Sun, 20 Feb 2011 11:57:48 +0000 (12:57 +0100)
committergitknilch <gitknilch@cwde.de>
Sun, 20 Feb 2011 11:57:48 +0000 (12:57 +0100)
firmware/fnordlicht-firmware/Makefile
firmware/fnordlicht-firmware/config.h
firmware/fnordlicht-firmware/remote.c
firmware/fnordlicht-firmware/remote.h
firmware/fnordlicht-firmware/uart.c

index 0fffc69227e7dbe5769f922e838696ba99023964..c18e3ba96a554819aaa36b21092a9f297d62876a 100644 (file)
@@ -56,8 +56,6 @@ CONFIG_REMOTE = 1
 CONFIG_SECONDARY_PWM = 1
 # default baudrate
 CONFIG_SERIAL_BAUDRATE = 19200
-# check jumper for master mode
-CONFIG_MASTER_MODE = 1
 
 # avrdude programmer protocol
 PROG = usbasp
@@ -70,7 +68,6 @@ CFLAGS += -DHARDWARE_$(HARDWARE)=1 -DCONFIG_SCRIPT_DEFAULT=$(CONFIG_SCRIPT_DEFAU
 CFLAGS += -DCONFIG_SCRIPT=$(CONFIG_SCRIPT) -DCONFIG_SERIAL=$(CONFIG_SERIAL)
 CFLAGS += -DCONFIG_REMOTE=$(CONFIG_REMOTE) -DCONFIG_SECONDARY_PWM=$(CONFIG_SECONDARY_PWM)
 CFLAGS += -DCONFIG_SERIAL_BAUDRATE=$(CONFIG_SERIAL_BAUDRATE)
-CFLAGS += -DCONFIG_MASTER_MODE=$(CONFIG_MASTER_MODE)
 
 ####################################################
 # 'make' configuration
index b708a4815f3a84b5ed14fdaa2eb47ad3cb140540..3ac7d9a2bff319e772882c0190cf95609b8cfba7 100644 (file)
 #define CONFIG_SERIAL_BAUDRATE 19200
 #endif
 
-/* configure master mode:
- *   0   disable master mode completely
- *   1   check if master mode jumper is set (default)
- *   2   always act as master
- */
-#ifndef CONFIG_MASTER_MODE
-#define CONFIG_MASTER_MODE 1
-#endif
-
 /* check if hardware is valid */
 #if defined(HARDWARE_fnordlicht)
     /* specific settings for old fnordlicht hardware */
index d6f54f7dba5dcb33c4a03847e7653d95dd609a35..fcaf672e298ec03ea748dae8375512e6504b6bdc 100644 (file)
@@ -63,9 +63,6 @@ struct remote_state_t
     uint8_t sync;
     uint8_t synced;
     struct pt thread;
-#if CONFIG_MASTER_MODE
-    struct pt master_thread;
-#endif
 
     /* int line */
     timer_t int_timer;
@@ -115,17 +112,6 @@ void remote_init(void)
     R_PORT &= ~_BV(INTPIN);
 #ifdef INIT_ZERO
     remote.int_state = INT_IDLE;
-
-    PT_INIT(&remote.master_thread);
-#endif
-
-#if CONFIG_MASTER_MODE == 1
-    /* check master state: read value of M_PIN1 */
-    if (!(M_PIN & _BV(M_PIN1)))
-        global_remote.master = true;
-#elif CONFIG_MASTER_MODE == 2
-    /* statically configure master mode */
-    global_remote.master = true;
 #endif
 }
 
@@ -209,90 +195,6 @@ static void send_resync(uint8_t addr)
     uart_putc(addr);
 }
 
-#if CONFIG_MASTER_MODE
-/* parameters for master mode script commands */
-#define MASTER_PROGRAMS 2
-static PROGMEM uint8_t master_parameters[] = {
-    /* first: colorwheel forward */
-    0,          /* program index */
-    1,          /* fade step */
-    2,          /* fade delay */
-    0,          /* fade sleep */
-    0, 0,       /* hue start (little endian) */
-    20, 0,      /* hue step (little endian) */
-    -1,         /* addr add */
-    255,        /* saturation */
-    255,        /* value */
-
-    /* first: colorwheel backward */
-    0,          /* program index */
-    1,          /* fade step */
-    2,          /* fade delay */
-    0,          /* fade sleep */
-    0, 0,       /* hue start (little endian) */
-    20, 0,      /* hue step (little endian) */
-    1,          /* addr add */
-    255,        /* saturation */
-    255,        /* value */
-};
-
-static PT_THREAD(remote_master_thread(struct pt *thread))
-{
-    static struct remote_msg_start_program_t msg;
-    static timer_t timer;
-    static uint16_t sleep;
-    static uint8_t *ptr;
-    static uint8_t idx;
-
-    PT_BEGIN(thread);
-
-    /* wait */
-    timer_set(&timer, MASTER_WAIT_BEFORE_SYNC);
-    while(!timer_expired(&timer))
-        PT_YIELD(thread);
-
-    /* start program on all devices */
-    msg.address = 0xff;
-    msg.cmd = REMOTE_CMD_START_PROGRAM;
-
-    while (1) {
-        ptr = &master_parameters[0];
-
-        for (idx = 0; idx < MASTER_PROGRAMS; idx++) {
-            /* stop current program and fading */
-            script_stop();
-            pwm_stop_fading();
-
-            /* start program colorwheel on all nodes */
-            msg.script = pgm_read_byte(ptr++);
-            /* load parameters */
-            for (uint8_t i = 0; i < sizeof(msg.params); i++)
-                msg.params.raw[i] = pgm_read_byte(ptr++);
-
-            /* send */
-            send_resync(MASTER_MODE_FIRST_ADDRESS);
-            PT_YIELD(thread);
-            send_msg((struct remote_msg_t *)&msg);
-
-            /* start program locally */
-            script_start(0, msg.script, &msg.params);
-
-            /* sleep */
-            sleep = MASTER_MODE_SLEEP;
-            while (sleep--) {
-                /* sleep 1s */
-                timer_set(&timer, 100);
-
-                while (!timer_expired(&timer))
-                    PT_YIELD(thread);
-            }
-        }
-    }
-
-    PT_END(thread);
-}
-#endif
-
 void remote_poll(void)
 {
     if (fifo_fill((fifo_t *)&global_uart.rx) > 0) {
@@ -310,9 +212,6 @@ void remote_poll(void)
             /* enable remote command thread */
             remote.synced = 1;
             PT_INIT(&remote.thread);
-#if CONFIG_MASTER_MODE
-            global_remote.master = false;
-#endif
         } else {
             /* just pass through data */
             uart_putc(data);
@@ -337,11 +236,6 @@ void remote_poll(void)
     if (remote.int_state == INT_PULLED_TIMER && timer_expired(&remote.int_timer)) {
         remote_release_int();
     }
-
-#if CONFIG_MASTER_MODE
-    if (global_remote.master)
-        PT_SCHEDULE(remote_master_thread(&remote.master_thread));
-#endif
 }
 
 void remote_pull_int(void)
index 65354893a6bd4f8f62516174e3fd89568a8ae4a4..3f54d7250311b2fdfec45527a501b7de505b2d1b 100644 (file)
@@ -39,11 +39,6 @@ struct remote_offsets_t
 struct global_remote_t {
     uint8_t address;
     struct remote_offsets_t offsets;
-
-#if CONFIG_MASTER_MODE
-    /* master mode */
-    bool master;
-#endif
 };
 
 extern struct global_remote_t global_remote;
index a004bcf8dd2cabf719e4e150c11442f8bf402043..d25e2b5d38cf159edcbf5e1e2998bbdf946b1b8b 100644 (file)
@@ -51,11 +51,13 @@ volatile struct global_uart_t global_uart;
 /** output one character */
 void uart_putc(uint8_t data)
 {
+#if UART_TX_ENABLED
     /* store data */
     fifo_enqueue((fifo_t *)&global_uart.tx, data);
 
     /* enable interrupt */
     _UCSRB_UART0 |= _BV(_UDRIE_UART0);
+#endif
 }
 
 /** init the hardware uart */
@@ -75,12 +77,18 @@ void uart_init(void)
     /* set mode */
     _UCSRC_UART0 = UART_UCSRC;
 
+#if UART_TX_ENABLED
     /* enable transmitter, receiver and receiver complete interrupt */
     _UCSRB_UART0 = _BV(_TXEN_UART0) | _BV(_RXEN_UART0) | _BV(_RXCIE_UART0);
+    /* init tx fifo */
+    fifo_init((fifo_t *)&global_uart.tx);
+#else
+    /* enable receiver and receiver complete interrupt */
+    _UCSRB_UART0 = _BV(_RXEN_UART0) | _BV(_RXCIE_UART0);
+#endif
 
-    /* init fifos */
+    /* init rx fifo */
     fifo_init((fifo_t *)&global_uart.rx);
-    fifo_init((fifo_t *)&global_uart.tx);
 }
 
 
@@ -95,10 +103,10 @@ ISR(_SIG_UART_RECV_UART0)
 
 }
 
+#if UART_TX_ENABLED
 /** uart data register empty interrupt */
 ISR(_SIG_UART_DATA_UART0)
 {
-
     /* load next byte to transfer */
     _UDR_UART0 = fifo_dequeue((fifo_t *)&global_uart.tx);
 
@@ -107,8 +115,8 @@ ISR(_SIG_UART_DATA_UART0)
         /* disable this interrupt */
         _UCSRB_UART0 &= ~_BV(_UDRIE_UART0);
     }
-
 }
+#endif
 
 
 #endif
Impressum, Datenschutz