Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
François Revol
firmware
Commits
e489b211
Commit
e489b211
authored
Jan 17, 2020
by
Rahix
Committed by
schneider
Jan 24, 2020
Browse files
chore(leds): Convert LEDs module to new mutex API
Signed-off-by:
Rahix
<
rahix@rahix.de
>
parent
3b436505
Changes
1
Hide whitespace changes
Inline
Side-by-side
epicardium/modules/leds.c
View file @
e489b211
...
...
@@ -7,15 +7,16 @@
#include
<stdbool.h>
//TODO: create smth like vTaskDelay(pdMS_TO_TICKS(//put ms here)) for us, remove blocking delay from /lib/leds.c to avoid process blocking
/*
* TODO: create smth like vTaskDelay(pdMS_TO_TICKS(//put ms here)) for us,
* remove blocking delay from /lib/leds.c to avoid process blocking
*/
#define NUM_LEDS 15
/* Take from lib/card10/leds.c */
static
void
do_update
()
static
void
do_update
(
void
)
{
while
(
hwlock_acquire_timeout
(
HWLOCK_LED
,
portMAX_DELAY
)
<
0
)
{
vTaskDelay
(
pdMS_TO_TICKS
(
1
));
}
hwlock_acquire
(
HWLOCK_LED
);
leds_update_power
();
leds_update
();
...
...
@@ -96,12 +97,8 @@ void epic_leds_dim_top(uint8_t value)
{
leds_set_dim_top
(
value
);
if
(
personal_state_enabled
()
==
0
)
{
while
(
hwlock_acquire_timeout
(
HWLOCK_I2C
,
portMAX_DELAY
)
<
0
)
{
vTaskDelay
(
pdMS_TO_TICKS
(
1
));
}
hwlock_acquire
(
HWLOCK_I2C
);
leds_update
();
hwlock_release
(
HWLOCK_I2C
);
}
}
...
...
@@ -110,35 +107,24 @@ void epic_leds_dim_bottom(uint8_t value)
{
leds_set_dim_bottom
(
value
);
if
(
personal_state_enabled
()
==
0
)
{
while
(
hwlock_acquire_timeout
(
HWLOCK_I2C
,
portMAX_DELAY
)
<
0
)
{
vTaskDelay
(
pdMS_TO_TICKS
(
1
));
}
hwlock_acquire
(
HWLOCK_I2C
);
leds_update
();
hwlock_release
(
HWLOCK_I2C
);
}
}
void
epic_leds_set_rocket
(
int
led
,
uint8_t
value
)
{
while
(
hwlock_acquire_timeout
(
HWLOCK_I2C
,
portMAX_DELAY
)
<
0
)
{
vTaskDelay
(
pdMS_TO_TICKS
(
1
));
}
value
=
value
>
31
?
31
:
value
;
pmic_set_led
(
led
,
value
);
hwlock_acquire
(
HWLOCK_I2C
);
pmic_set_led
(
led
,
value
>
31
?
31
:
value
);
hwlock_release
(
HWLOCK_I2C
);
}
int
epic_leds_get_rocket
(
int
led
)
{
int
ret
=
0
;
while
(
hwlock_acquire_timeout
(
HWLOCK_I2C
,
portMAX_DELAY
)
<
0
)
{
vTaskDelay
(
pdMS_TO_TICKS
(
1
));
}
hwlock_acquire
(
HWLOCK_I2C
);
ret
=
pmic_get_led
(
led
);
hwlock_release
(
HWLOCK_I2C
);
return
ret
;
...
...
@@ -146,12 +132,8 @@ int epic_leds_get_rocket(int led)
void
epic_set_flashlight
(
bool
power
)
{
while
(
hwlock_acquire_timeout
(
HWLOCK_I2C
,
portMAX_DELAY
)
<
0
)
{
vTaskDelay
(
pdMS_TO_TICKS
(
1
));
}
hwlock_acquire
(
HWLOCK_I2C
);
leds_flashlight
(
power
);
hwlock_release
(
HWLOCK_I2C
);
}
...
...
@@ -162,12 +144,8 @@ void epic_leds_update(void)
void
epic_leds_set_powersave
(
bool
eco
)
{
while
(
hwlock_acquire_timeout
(
HWLOCK_I2C
,
portMAX_DELAY
)
<
0
)
{
vTaskDelay
(
pdMS_TO_TICKS
(
1
));
}
hwlock_acquire
(
HWLOCK_I2C
);
leds_powersave
(
eco
);
hwlock_release
(
HWLOCK_I2C
);
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment