Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
Jan Kasprzak
tinyboard
Commits
51ec86a4
Commit
51ec86a4
authored
May 01, 2013
by
Jan Kasprzak
Browse files
Error reporting via status LED
parent
8b54d4bd
Changes
3
Show whitespace changes
Inline
Side-by-side
projects/step-up/control.c
View file @
51ec86a4
...
...
@@ -24,23 +24,48 @@ static pattern_t slow_pattern[] = {
PATTERN_END
};
static
unsigned
char
light_mode
,
shutdown_in_progress
;
static
unsigned
char
light_mode
;
static
union
{
unsigned
char
errors
;
struct
{
unsigned
char
shutdown_in_progress
:
1
;
unsigned
char
pwmled_error
:
1
;
unsigned
char
battery_low
:
1
;
};
}
e
;
void
set_error
(
unsigned
char
err
)
{
switch
(
err
)
{
case
ERR_BATTERY
:
e
.
battery_low
=
1
;
pwmled_set_target
(
0
);
pattern_reload
();
break
;
case
ERR_PWMLED
:
e
.
pwmled_error
=
1
;
break
;
}
}
void
init_control
()
{
light_mode
=
1
;
shutdown_in_progres
s
=
0
;
e
.
error
s
=
0
;
short_press
();
}
void
long_press_start
()
{
shutdown_in_progress
=
1
;
e
.
shutdown_in_progress
=
1
;
pattern_reload
();
}
void
short_press
()
{
if
(
e
.
battery_low
)
return
;
if
(
++
light_mode
>=
2
*
N_PWMLED_MODES
)
light_mode
=
0
;
...
...
@@ -52,15 +77,18 @@ void short_press()
void
long_press
()
{
shutdown_in_progress
=
0
;
e
.
shutdown_in_progress
=
0
;
pattern_reload
();
}
pattern_t
*
pwmled_pattern_select
()
{
if
(
shutdown_in_progress
)
if
(
e
.
shutdown_in_progress
)
return
NULL
;
if
(
e
.
battery_low
)
return
slow_pattern
;
if
(
light_mode
==
0
)
{
return
slow_pattern
;
}
else
if
(
light_mode
<
N_PWMLED_MODES
)
{
...
...
@@ -72,9 +100,15 @@ pattern_t *pwmled_pattern_select()
pattern_t
*
status_led_pattern_select
()
{
if
(
shutdown_in_progress
)
if
(
e
.
shutdown_in_progress
)
return
on_pattern
;
if
(
e
.
pwmled_error
)
return
number_pattern
(
3
,
1
);
if
(
e
.
battery_low
)
return
number_pattern
(
1
,
1
);
return
number_pattern
(
light_mode
+
1
,
0
);
}
...
...
projects/step-up/lights.h
View file @
51ec86a4
...
...
@@ -77,6 +77,9 @@ void brake_on();
void
brake_off
();
pattern_t
*
pwmled_pattern_select
();
pattern_t
*
status_led_pattern_select
();
#define ERR_BATTERY 1
#define ERR_PWMLED 2
void
set_error
(
unsigned
char
err
);
/* main.c */
void
power_down
();
...
...
projects/step-up/pwmled.c
View file @
51ec86a4
...
...
@@ -74,6 +74,8 @@ static inline void pwmled_err()
log_byte
(
0xF1
);
log_flush
();
set_error
(
ERR_PWMLED
);
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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