Add error mode indicator when SET1 is set above max
This commit is contained in:
parent
cfd9715023
commit
f2d4afce1c
|
@ -32,6 +32,8 @@ void userio_parse();
|
||||||
uint8_t userio_get_mode();
|
uint8_t userio_get_mode();
|
||||||
int16_t userio_get_btn();
|
int16_t userio_get_btn();
|
||||||
|
|
||||||
|
uint8_t userio_get_set1_limit();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* _INC_USERIO_H */
|
#endif /* _INC_USERIO_H */
|
|
@ -43,6 +43,8 @@ void rgbprog_randcolor(uint8_t k0);
|
||||||
void rgbprog_randcolorfadeinout(uint8_t k0);
|
void rgbprog_randcolorfadeinout(uint8_t k0);
|
||||||
void rgbprog_prog7(uint8_t k0);
|
void rgbprog_prog7(uint8_t k0);
|
||||||
|
|
||||||
|
void rgbprog_set1_error();
|
||||||
|
|
||||||
static void (*proglist[8])(uint8_t) = {
|
static void (*proglist[8])(uint8_t) = {
|
||||||
rgbprog_rainbow,
|
rgbprog_rainbow,
|
||||||
rgbprog_rainbow_offset,
|
rgbprog_rainbow_offset,
|
||||||
|
@ -112,6 +114,13 @@ void rgbprog_run()
|
||||||
brite &= 0x3;
|
brite &= 0x3;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if SET1 is out of range, indicate that instead of
|
||||||
|
// running the normal program
|
||||||
|
if (userio_get_set1_limit()) {
|
||||||
|
rgbprog_set1_error();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// which program to run?
|
// which program to run?
|
||||||
j = 0;
|
j = 0;
|
||||||
for (i = 32; i <= 256; i += 32) {
|
for (i = 32; i <= 256; i += 32) {
|
||||||
|
@ -390,3 +399,26 @@ void rgbprog_prog7(uint8_t k0)
|
||||||
rgb_setled(0, &rgb[0]);
|
rgb_setled(0, &rgb[0]);
|
||||||
rgb_setled(1, &rgb[0]);
|
rgb_setled(1, &rgb[0]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* internal program:
|
||||||
|
*
|
||||||
|
* flashes LEDs, indicating a SET1 knob error.
|
||||||
|
*/
|
||||||
|
void rgbprog_set1_error()
|
||||||
|
{
|
||||||
|
hsv[1].s++;
|
||||||
|
if (!hsv[1].s) {
|
||||||
|
hsv[1].v++;
|
||||||
|
hsv[1].v &= 1;
|
||||||
|
hsv[0].v = hsv[1].v ^ 1;
|
||||||
|
|
||||||
|
rgb[0].r = 255;
|
||||||
|
rgb[0].g = 0;
|
||||||
|
rgb[0].b = 0;
|
||||||
|
rgb_setled(hsv[1].v, &rgb[0]);
|
||||||
|
|
||||||
|
rgb[0].r = 0;
|
||||||
|
rgb_setled(hsv[0].v, &rgb[0]);
|
||||||
|
}
|
||||||
|
}
|
15
src/userio.c
15
src/userio.c
|
@ -42,7 +42,7 @@
|
||||||
|
|
||||||
|
|
||||||
#ifdef TESTO_REV1
|
#ifdef TESTO_REV1
|
||||||
#define SET1_MAX 2047 // 3V net feeding into 1V24 via body diode above this
|
#define SET1_MAX 2199 // 3V net feeding into 1V24 via body diode above this
|
||||||
#else
|
#else
|
||||||
#define SET1_MAX 1539 // 1.24Vref
|
#define SET1_MAX 1539 // 1.24Vref
|
||||||
#endif
|
#endif
|
||||||
|
@ -176,3 +176,16 @@ int16_t userio_get_btn()
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* returns true if the right knob is beyond maximum range.
|
||||||
|
* always returns false on REV2 or later boards.
|
||||||
|
*/
|
||||||
|
uint8_t userio_get_set1_limit()
|
||||||
|
{
|
||||||
|
#ifdef TESTO_REV1
|
||||||
|
if (adc_avg[ADC_SET1] > SET1_MAX) return 1;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue