Make stm-demo display a scrolling message
authorKeith Packard <keithp@keithp.com>
Fri, 23 Mar 2012 07:04:47 +0000 (00:04 -0700)
committerKeith Packard <keithp@keithp.com>
Thu, 29 Mar 2012 04:37:04 +0000 (21:37 -0700)
Instead of trying to frob the LEDs, which are now owned by the serial
port.

Signed-off-by: Keith Packard <keithp@keithp.com>
src/stm-demo/ao_demo.c
src/stm-demo/ao_pins.h

index a672964b885bca831e6f16a86fd5054984fc60ca..544f261fcbe7be64fbbfe05e055a6b592e2fee7d 100644 (file)
 
 struct ao_task demo_task;
 
+static inline int min(int a, int b) { return a < b ? a : b; }
+
 void
 ao_demo(void)
 {
+       char    message[] = "Hello, Mike & Bdale --- ";
+       char    part[7];
+       int     i = 0;
+       int     len = sizeof(message) - 1;
+       int     first, second;
+
+       part[6] = '\0';
        for (;;) {
-               ao_led_on(AO_LED_BLUE);
-               ao_delay(AO_MS_TO_TICKS(500));
-               ao_led_off(AO_LED_BLUE);
-               ao_led_on(AO_LED_GREEN);
-               ao_delay(AO_MS_TO_TICKS(500));
-               ao_led_off(AO_LED_GREEN);
+               ao_delay(AO_MS_TO_TICKS(150));
+               first = min(6, len - i);
+               second = 6 - first;
+               memcpy(part, message + i, first);
+               memcpy(part + first, message, second);
+               ao_lcd_font_string(part);
+               if (++i >= len)
+                       i = 0;
        }
 }
 
@@ -47,10 +58,9 @@ main(void)
        ao_serial_init();
        ao_timer_init();
        ao_cmd_init();
-//     ao_led_init(LEDS_AVAILABLE);
        ao_lcd_stm_init();
        ao_lcd_font_init();
-//     ao_add_task(&demo_task, ao_demo, "demo");
+       ao_add_task(&demo_task, ao_demo, "demo");
        
        ao_start_scheduler();
        return 0;
index 8d7ed76bb023476f494774b4b7b4dc2185f6a521..798a292e38c2d3835583635f4a4a66e36b7801af 100644 (file)
 #define _AO_PINS_H_
 
 #define HAS_SERIAL_1           1
+#define USE_SERIAL_1_STDIN     1
+#define SERIAL_1_PB6_PB7       1
+#define SERIAL_1_PA9_PA10      0
+
 #define HAS_SERIAL_2           0
+#define USE_SERIAL_2_STDIN     1
+#define SERIAL_2_PA2_PA3       0
+#define SERIAL_2_PD5_PD6       1
+
 #define HAS_SERIAL_3           0
-#define USE_SERIAL_STDIN       1
+#define USE_SERIAL_3_STDIN     1
+#define SERIAL_3_PB10_PB11     0
+#define SERIAL_3_PC10_PC11     0
+#define SERIAL_3_PD8_PD9       1
+
 #define HAS_USB                        0
 #define HAS_BEEP               0
 #define PACKET_HAS_SLAVE       0