diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/stm-demo/Makefile | 1 | ||||
| -rw-r--r-- | src/stm-demo/ao_demo.c | 45 | ||||
| -rw-r--r-- | src/stm-demo/ao_pins.h | 11 | 
3 files changed, 42 insertions, 15 deletions
| diff --git a/src/stm-demo/Makefile b/src/stm-demo/Makefile index 98fcd9e5..8260abee 100644 --- a/src/stm-demo/Makefile +++ b/src/stm-demo/Makefile @@ -26,7 +26,6 @@ ALTOS_SRC = \  	ao_stdio.c \  	ao_panic.c \  	ao_timer.c \ -	ao_serial_stm.c \  	ao_lcd_stm.c \  	ao_lcd_font.c \  	ao_mutex.c \ diff --git a/src/stm-demo/ao_demo.c b/src/stm-demo/ao_demo.c index edc67f5e..ffc5d2d8 100644 --- a/src/stm-demo/ao_demo.c +++ b/src/stm-demo/ao_demo.c @@ -171,12 +171,38 @@ ao_event(void)  }  #endif +static uint8_t ao_blinking = 0; + +static void +ao_blink(void) +{ +	for (;;) { +		while (!ao_blinking) +			ao_sleep(&ao_blinking); +		while (ao_blinking) { +			ao_led_toggle(AO_LED_BLUE|AO_LED_GREEN); +			ao_delay(AO_MS_TO_TICKS(500)); +		} +	} +} + +static struct ao_task ao_blink_task; + +static void +ao_blink_toggle(void) +{ +	ao_blinking = !ao_blinking; +	ao_wakeup(&ao_blinking); +} + +  __code struct ao_cmds ao_demo_cmds[] = {  	{ ao_dma_test,	"D\0DMA test" },  	{ ao_spi_write, "W\0SPI write" },  	{ ao_spi_read, "R\0SPI read" },  	{ ao_i2c_write, "i\0I2C write" },  	{ ao_temp, "t\0Show temp" }, +	{ ao_blink_toggle, "b\0Toggle LED blinking" },  /*	{ ao_event, "e\0Monitor event queue" }, */  	{ 0, NULL }  }; @@ -188,23 +214,26 @@ main(void)  	ao_task_init(); -	ao_serial_init(); +	ao_led_init(LEDS_AVAILABLE); +	ao_led_on(AO_LED_GREEN); +	ao_led_off(AO_LED_BLUE);  	ao_timer_init();  	ao_dma_init();  	ao_cmd_init(); -	ao_lcd_stm_init(); -	ao_lcd_font_init(); -	ao_spi_init(); -	ao_i2c_init(); -	ao_exti_init(); +//	ao_lcd_stm_init(); +//	ao_lcd_font_init(); +//	ao_spi_init(); +//	ao_i2c_init(); +//	ao_exti_init();  //	ao_quadrature_init();  //	ao_button_init(); -	ao_timer_set_adc_interval(100); +//	ao_timer_set_adc_interval(100); -	ao_adc_init(); +//	ao_adc_init();  	ao_usb_init(); +	ao_add_task(&ao_blink_task, ao_blink, "blink");  	ao_cmd_register(&ao_demo_cmds[0]);  	ao_start_scheduler(); diff --git a/src/stm-demo/ao_pins.h b/src/stm-demo/ao_pins.h index 40e48a36..885b9db6 100644 --- a/src/stm-demo/ao_pins.h +++ b/src/stm-demo/ao_pins.h @@ -42,13 +42,13 @@  #define AO_APB2_PRESCALER      	1  #define AO_RCC_CFGR_PPRE2_DIV	STM_RCC_CFGR_PPRE2_DIV_1 -#define HAS_SERIAL_1		1 -#define USE_SERIAL_1_STDIN	1 +#define HAS_SERIAL_1		0 +#define USE_SERIAL_1_STDIN	0  #define SERIAL_1_PB6_PB7	1  #define SERIAL_1_PA9_PA10	0  #define HAS_SERIAL_2		0 -#define USE_SERIAL_2_STDIN	1 +#define USE_SERIAL_2_STDIN	0  #define SERIAL_2_PA2_PA3	0  #define SERIAL_2_PD5_PD6	1 @@ -70,7 +70,7 @@  #define AO_BOOT_CHAIN		1 -#define LOW_LEVEL_DEBUG		1 +#define LOW_LEVEL_DEBUG		0  #define LED_PORT_ENABLE		STM_RCC_AHBENR_GPIOBEN  #define LED_PORT		(&stm_gpiob) @@ -78,8 +78,7 @@  #define LED_PIN_BLUE		6  #define AO_LED_GREEN		(1 << LED_PIN_GREEN)  #define AO_LED_BLUE		(1 << LED_PIN_BLUE) - -#define AO_LED_RED		AO_LED_BLUE	/* a patent lie */ +#define AO_LED_PANIC		AO_LED_BLUE  #define LEDS_AVAILABLE		(AO_LED_BLUE | AO_LED_GREEN) | 
