projects
/
fw
/
altos
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
altos: Build telelco and spiradio when possible
[fw/altos]
/
src
/
stm
/
ao_led.c
diff --git
a/src/stm/ao_led.c
b/src/stm/ao_led.c
index 0574aa2a087ce33bb46831f1bbdfc0aa8d599d3e..ee313b6fa5b8e16b9dd83f9cdea9a937326d1965 100644
(file)
--- a/
src/stm/ao_led.c
+++ b/
src/stm/ao_led.c
@@
-17,34
+17,37
@@
#include "ao.h"
#include "ao.h"
-__pdata uint
8
_t ao_led_enable;
+__pdata uint
16
_t ao_led_enable;
void
void
-ao_led_on(uint
8
_t colors)
+ao_led_on(uint
16
_t colors)
{
{
- LED_PORT
.odr |
= (colors & ao_led_enable);
+ LED_PORT
->bsrr
= (colors & ao_led_enable);
}
void
}
void
-ao_led_off(uint
8
_t colors)
+ao_led_off(uint
16
_t colors)
{
{
- LED_PORT
.odr &= ~(colors & ao_led_enable)
;
+ LED_PORT
->bsrr = (uint32_t) (colors & ao_led_enable) << 16
;
}
void
}
void
-ao_led_set(uint
8
_t colors)
+ao_led_set(uint
16
_t colors)
{
{
- LED_PORT.odr = (LED_PORT.odr & ~(ao_led_enable)) | (colors & ao_led_enable);
+ uint16_t on = colors & ao_led_enable;
+ uint16_t off = ~colors & ao_led_enable;
+
+ LED_PORT->bsrr = off << 16 | on;
}
void
}
void
-ao_led_toggle(uint
8
_t colors)
+ao_led_toggle(uint
16
_t colors)
{
{
- LED_PORT
.
odr ^= (colors & ao_led_enable);
+ LED_PORT
->
odr ^= (colors & ao_led_enable);
}
void
}
void
-ao_led_for(uint
8
_t colors, uint16_t ticks) __reentrant
+ao_led_for(uint
16
_t colors, uint16_t ticks) __reentrant
{
ao_led_on(colors);
ao_delay(ticks);
{
ao_led_on(colors);
ao_delay(ticks);
@@
-52,17
+55,17
@@
ao_led_for(uint8_t colors, uint16_t ticks) __reentrant
}
void
}
void
-ao_led_init(uint
8
_t enable)
+ao_led_init(uint
16
_t enable)
{
int bit;
stm_rcc.ahbenr |= (1 << LED_PORT_ENABLE);
ao_led_enable = 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)) {
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);
}
}
}
}
}
}