X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fstm%2Fao_led.c;h=d649f3d7a03a71559bff81fbb638d35c2aab19bb;hb=51aef5d4fc29986353ad887f4a67ed2fe35f8c8e;hp=db65afdf8b94d5685b6d8599dc73a435458365ae;hpb=9279fd42793123784ce83ca151df6f4630487722;p=fw%2Faltos diff --git a/src/stm/ao_led.c b/src/stm/ao_led.c index db65afdf..d649f3d7 100644 --- a/src/stm/ao_led.c +++ b/src/stm/ao_led.c @@ -17,36 +17,34 @@ #include "ao.h" -__pdata uint8_t ao_led_enable; - -#define LED_PORT STM_GPIOD +__pdata uint16_t ao_led_enable; void -ao_led_on(uint8_t colors) +ao_led_on(uint16_t colors) { - LED_PORT->odr |= (colors & ao_led_enable); + LED_PORT.odr |= (colors & ao_led_enable); } void -ao_led_off(uint8_t colors) +ao_led_off(uint16_t colors) { - LED_PORT->odr &= ~(colors & ao_led_enable); + LED_PORT.odr &= ~(colors & ao_led_enable); } void -ao_led_set(uint8_t colors) +ao_led_set(uint16_t colors) { - LED_PORT->odr = (LED_PORT->odr & ~(ao_led_enable)) | (colors & ao_led_enable); + LED_PORT.odr = (LED_PORT.odr & ~(ao_led_enable)) | (colors & ao_led_enable); } void -ao_led_toggle(uint8_t colors) +ao_led_toggle(uint16_t colors) { - LED_PORT->odr ^= (colors & ao_led_enable); + LED_PORT.odr ^= (colors & ao_led_enable); } void -ao_led_for(uint8_t colors, uint16_t ticks) __reentrant +ao_led_for(uint16_t colors, uint16_t ticks) __reentrant { ao_led_on(colors); ao_delay(ticks); @@ -54,16 +52,17 @@ ao_led_for(uint8_t colors, uint16_t ticks) __reentrant } void -ao_led_init(uint8_t enable) +ao_led_init(uint16_t enable) { int bit; + stm_rcc.ahbenr |= (1 << LED_PORT_ENABLE); ao_led_enable = enable; - LED_PORT->odr &= ~enable; + LED_PORT.odr &= ~enable; for (bit = 0; bit < 16; bit++) { if (enable & (1 << bit)) { - stm_moder_set(LED_PORT, bit, STM_MODER_OUTPUT); - stm_otyper_set(LED_PORT, bit, STM_OTYPER_PUSH_PULL); + stm_moder_set(&LED_PORT, bit, STM_MODER_OUTPUT); + stm_otyper_set(&LED_PORT, bit, STM_OTYPER_PUSH_PULL); } } }