|
@@ -58,6 +58,8 @@ static volatile uint8_t dispWDT = 0;
|
|
|
static void btnProcess(void);
|
|
|
static void Color_RGB(uint8_t r, uint8_t g, uint8_t b);
|
|
|
static void ColorCircle(void);
|
|
|
+void MinusFadeIn(void);
|
|
|
+void MinusFadeOut(void);
|
|
|
/* USER CODE END PFP */
|
|
|
|
|
|
/* Private user code ---------------------------------------------------------*/
|
|
@@ -210,6 +212,118 @@ void in15Minus(void) {
|
|
|
TUBE_C_ON;
|
|
|
}
|
|
|
|
|
|
+void MinusFadeIn(void) {
|
|
|
+ static uint8_t cnt = 0;
|
|
|
+
|
|
|
+ TUBE_C_ON;
|
|
|
+
|
|
|
+ switch (cnt) {
|
|
|
+ case 0:
|
|
|
+ IN15_Minus;
|
|
|
+ RTOS_DeleteTask(MinusFadeOut);
|
|
|
+ RTOS_SetTask(MinusFadeIn, 2, 0);
|
|
|
+ break;
|
|
|
+ case 1:
|
|
|
+ IN15_OFF;
|
|
|
+ RTOS_SetTask(MinusFadeIn, 18, 0);
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ IN15_Minus;
|
|
|
+ RTOS_SetTask(MinusFadeIn, 4, 0);
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ IN15_OFF;
|
|
|
+ RTOS_SetTask(MinusFadeIn, 16, 0);
|
|
|
+ break;
|
|
|
+ case 4:
|
|
|
+ IN15_Minus;
|
|
|
+ RTOS_SetTask(MinusFadeIn, 6, 0);
|
|
|
+ break;
|
|
|
+ case 5:
|
|
|
+ IN15_OFF;
|
|
|
+ RTOS_SetTask(MinusFadeIn, 14, 0);
|
|
|
+ break;
|
|
|
+ case 6:
|
|
|
+ IN15_Minus;
|
|
|
+ RTOS_SetTask(MinusFadeIn, 8, 0);
|
|
|
+ break;
|
|
|
+ case 7:
|
|
|
+ IN15_OFF;
|
|
|
+ RTOS_SetTask(MinusFadeIn, 12, 0);
|
|
|
+ break;
|
|
|
+ case 8:
|
|
|
+ IN15_Minus;
|
|
|
+ RTOS_SetTask(MinusFadeIn, 10, 0);
|
|
|
+ break;
|
|
|
+ case 9:
|
|
|
+ IN15_OFF;
|
|
|
+ RTOS_SetTask(MinusFadeIn, 10, 0);
|
|
|
+ break;
|
|
|
+ case 10:
|
|
|
+ IN15_Minus;
|
|
|
+ RTOS_SetTask(MinusFadeIn, 12, 0);
|
|
|
+ break;
|
|
|
+ case 11:
|
|
|
+ IN15_OFF;
|
|
|
+ RTOS_SetTask(MinusFadeIn, 8, 0);
|
|
|
+ break;
|
|
|
+ case 12:
|
|
|
+ IN15_Minus;
|
|
|
+ RTOS_SetTask(MinusFadeIn, 14, 0);
|
|
|
+ break;
|
|
|
+ case 13:
|
|
|
+ IN15_OFF;
|
|
|
+ RTOS_SetTask(MinusFadeIn, 6, 0);
|
|
|
+ break;
|
|
|
+ case 14:
|
|
|
+ IN15_Minus;
|
|
|
+ RTOS_SetTask(MinusFadeIn, 16, 0);
|
|
|
+ break;
|
|
|
+ case 15:
|
|
|
+ IN15_OFF;
|
|
|
+ RTOS_SetTask(MinusFadeIn, 4, 0);
|
|
|
+ break;
|
|
|
+ case 16:
|
|
|
+ IN15_Minus;
|
|
|
+ RTOS_SetTask(MinusFadeIn, 18, 0);
|
|
|
+ break;
|
|
|
+ case 17:
|
|
|
+ IN15_OFF;
|
|
|
+ RTOS_SetTask(MinusFadeIn, 2, 0);
|
|
|
+ break;
|
|
|
+ case 18:
|
|
|
+ IN15_Minus;
|
|
|
+ cnt = 0;
|
|
|
+ return;
|
|
|
+ break;
|
|
|
+
|
|
|
+ default:
|
|
|
+ cnt = 0;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ cnt ++;
|
|
|
+}
|
|
|
+
|
|
|
+void MinusFadeOut(void) {
|
|
|
+ static uint8_t off = 0;
|
|
|
+ static uint8_t on = 20;
|
|
|
+ static uint8_t st = 0;
|
|
|
+
|
|
|
+ if (st == 0) {
|
|
|
+ st = 1;
|
|
|
+ IN15_OFF;
|
|
|
+ off += 2;
|
|
|
+ if (off < 20) {
|
|
|
+ RTOS_SetTask(MinusFadeOut, off, 0);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ st = 0;
|
|
|
+ IN15_Plus;
|
|
|
+ on -= 2;
|
|
|
+ RTOS_SetTask(MinusFadeOut, on, 0);
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
void in15Plus(void) {
|
|
|
IN15_OFF;
|
|
|
IN15_Plus;
|
|
@@ -232,8 +346,10 @@ void in15P(void) {
|
|
|
* Show info on tubes.
|
|
|
*/
|
|
|
void showTime(void) {
|
|
|
- in15Minus();
|
|
|
- RTOS_SetTask(in15Off, 500, 0);
|
|
|
+ //in15Minus();
|
|
|
+ //RTOS_SetTask(in15Off, 500, 0);
|
|
|
+ MinusFadeIn();
|
|
|
+ RTOS_SetTask(MinusFadeOut, 500, 0);
|
|
|
|
|
|
uint8_t buf[4];
|
|
|
buf[Tube_A] = Clock.Hr >> 4;
|