feat: 06-17 신규 작업본 반영 (개발사양서/기능검토/승인원/Source 등 추가)

.claude/ 제외(.gitignore 추가). 기존 초기커밋(5a96a69) 위에 신규·수정·이동분 커밋.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-18 07:54:58 +09:00
parent 5a96a696b1
commit 096111e983
529 changed files with 12439 additions and 1166 deletions
@@ -0,0 +1,986 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include "Nano100Series.h"
#include "adc.h"
#include "gpio.h"
#include "pwm.h"
#include "timer.h"
#include "uart.h"
#include "sys.h"
#include "clk.h"
#include "EEPROM_Emulate.h"
#include "My_define.h"
void Initial_Signal();
void Disp_Segdata(uint8_t Sel, uint8_t digit4, uint8_t digit3, uint8_t digit2, uint8_t digit1);
void Led_OnOff(uint8_t kind, uint8_t onoff);
uint8_t Font_Data[18]={0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x67,\
0x80, 0x58, 0x79, 0x40, 0x00, 0x50, 0x77, 0x5E };
// . , c , E , - , ' ' , r , A , d
uint8_t seg_data[4][14];
#define A_DATA PA4
#define A_CLK PA3
#define A_STB PA2
#define B_DATA PA13
#define B_CLK PA14
#define B_STB PA15
#define C_DATA PC9
#define C_CLK PC10
#define C_STB PC11
#define D_DATA PD15
#define D_CLK PD14
#define D_STB PD7
void Initial_Signal()
{
uint8_t i;
A_CLK = 1;B_CLK = 1;C_CLK = 1;D_CLK = 1;
A_STB = 1;B_STB = 1;C_STB = 1;D_STB = 1;
for(i=0; i<8; i++) //command 1 (#0000_0001B) -> 5grid 8seg
{
A_STB = 0;B_STB = 0;C_STB = 0;D_STB = 0;
A_CLK = 0;B_CLK = 0;C_CLK = 0;D_CLK = 0;
if(i==0)
{
A_DATA = 1;B_DATA = 1;C_DATA = 1;D_DATA = 1;
}
else
{
A_DATA = 0;B_DATA = 0;C_DATA = 0;D_DATA = 0;
}
A_CLK = 1;B_CLK = 1;C_CLK = 1;D_CLK = 1;
}
A_STB = 1;B_STB = 1;C_STB = 1;D_STB = 1;
for(i=0; i<8; i++) //command 2 (#0100_0000B)
{
A_STB = 0;B_STB = 0;C_STB = 0;D_STB = 0;
A_CLK = 0;B_CLK = 0;C_CLK = 0;D_CLK = 0;
if(i==6)
{
A_DATA = 1;B_DATA = 1;C_DATA = 1;D_DATA = 1;
}
else
{
A_DATA = 0;B_DATA = 0;C_DATA = 0;D_DATA = 0;
}
A_CLK = 1;B_CLK = 1;C_CLK = 1;D_CLK = 1;
}
A_STB = 1;B_STB = 1;C_STB = 1;D_STB = 1;
for(i=0; i<8; i++) //command 3 (#1100_0000B)
{
A_STB = 0;B_STB = 0;C_STB = 0;D_STB = 0;
A_CLK = 0;B_CLK = 0;C_CLK = 0;D_CLK = 0;
if(i==6 || i==7)
{
A_DATA = 1;B_DATA = 1;C_DATA = 1;D_DATA = 1;
}
else
{
A_DATA = 0;B_DATA = 0;C_DATA = 0;D_DATA = 0;
}
A_CLK = 1;B_CLK = 1;C_CLK = 1;D_CLK = 1;
}
// A_STB = 1;B_STB = 1;C_STB = 1;D_STB = 1;
for(i=0; i<112; i++) //data
{
A_STB = 0;B_STB = 0;C_STB = 0;D_STB = 0;
A_CLK = 0;B_CLK = 0;C_CLK = 0;D_CLK = 0;
A_DATA = 0;B_DATA = 0;C_DATA = 0;D_DATA = 0;
A_CLK = 1;B_CLK = 1;C_CLK = 1;D_CLK = 1;
}
A_STB = 1;B_STB = 1;C_STB = 1;D_STB = 1;
for(i=0; i<8; i++) //command 4 (#1000_0100B)
{
A_STB = 0;B_STB = 0;C_STB = 0;D_STB = 0;
A_CLK = 0;B_CLK = 0;C_CLK = 0;D_CLK = 0;
if(i==3 || i==7)
{
A_DATA = 1;B_DATA = 1;C_DATA = 1;D_DATA = 1;
}
else
{
A_DATA = 0;B_DATA = 0;C_DATA = 0;D_DATA = 0;
}
A_CLK = 1;B_CLK = 1;C_CLK = 1;D_CLK = 1;
}
A_STB = 1;B_STB = 1;C_STB = 1;D_STB = 1;
}
uint16_t one_sec = 0;
extern uint8_t Tmperature_Error;
void Disp_Segdata(uint8_t Sel, uint8_t digit4, uint8_t digit3, uint8_t digit2, uint8_t digit1)
{
seg_data[Sel][0] = Font_Data[digit4];
seg_data[Sel][1] = Font_Data[digit4]>>3;
seg_data[Sel][2] = Font_Data[digit3];
seg_data[Sel][3] = Font_Data[digit3]>>3;
seg_data[Sel][4] = Font_Data[digit2];
seg_data[Sel][5] = Font_Data[digit2]>>3;
seg_data[Sel][6] = Font_Data[digit1];
seg_data[Sel][7] = Font_Data[digit1]>>3;
}
enum{
K_VENT,
K_AUTO,
K_AIR,
K_WIND1,
K_WIND2,
K_WIND3,
K_WIND4,
K_WIND5,
K_PM25_1,
K_PM25_2,
K_PM25_4,
K_PM25_3,
K_PM10_1,
K_PM10_2,
K_PM10_4,
K_PM10_3,
K_TIME_1,
K_TIME_4,
K_TIME_8,
K_LOCK,
K_JUMKEOM,
K_FILTER_CLEAN,
K_FILTER_CHANGE,
K_EXTRA1,
K_CO2_1,
K_CO2_2,
K_CO2_4,
K_CO2_3,
K_SOJA_CLEAN,
K_SOJA_CHANGE,
K_IOT,
K_EXTRA2,
};
void Led_OnOff(uint8_t kind, uint8_t onoff)
{
if(onoff == 1)
{
if(kind < 6)
{
seg_data[3][0] |= 0x01<<kind;
}
else if(kind < 8)
{
seg_data[3][1] |= 0x01<<(kind-3);
}
else if(kind < 14)
{
seg_data[3][2] |= 0x01<<(kind-8);
}
else if(kind < 16)
{
seg_data[3][3] |=0x01<<(kind-8-3);
}
else if(kind < 22)
{
seg_data[3][4] |= 0x01<<(kind-16);
}
else if(kind < 24)
{
seg_data[3][5] |=0x01<<(kind-16-3);
}
else if(kind < 30)
{
seg_data[3][6] |= 0x01<<(kind-24);
}
else if(kind < 32)
{
seg_data[3][7] |=0x01<<(kind-24-3);
}
else // all on
{
seg_data[3][0] = 0xFF;
seg_data[3][1] = 0xFF;
seg_data[3][2] = 0xFF;
seg_data[3][3] = 0xFF;
seg_data[3][4] = 0xFF;
seg_data[3][5] = 0xFF;
seg_data[3][6] = 0xFF;
seg_data[3][7] = 0xFF;
}
}
else
{
if(kind < 6)
{
seg_data[3][0] &= ~(0x01<<kind);
}
else if(kind < 8)
{
seg_data[3][1] &= ~(0x01<<(kind-3));
}
else if(kind < 14)
{
seg_data[3][2] &= ~(0x01<<(kind-8));
}
else if(kind < 16)
{
seg_data[3][3] &= ~(0x01<<(kind-8-3));
}
else if(kind < 22)
{
seg_data[3][4] &= ~(0x01<<kind-16);
}
else if(kind < 24)
{
seg_data[3][5] &= ~(0x01<<(kind-16-3));
}
else if(kind < 30)
{
seg_data[3][6] &= ~(0x01<<kind-24);
}
else if(kind < 32)
{
seg_data[3][7] &= ~(0x01<<(kind-24-3));
}
else // all off
{
seg_data[3][0] = 0;
seg_data[3][1] = 0;
seg_data[3][2] = 0;
seg_data[3][3] = 0;
seg_data[3][4] = 0;
seg_data[3][5] = 0;
seg_data[3][6] = 0;
seg_data[3][7] = 0;
} }
}
void Make_A(void)
{
uint8_t i,j;
uint8_t Mask;
A_STB = 1;
A_CLK = 1;
for(i=0; i<8; i++) //command 1 (#0000_0011B)
{
A_STB = 0;
A_CLK = 0;
if( i==0) //5grid, 8segment
A_DATA = 1;
else
A_DATA = 0;
A_CLK = 1;
}
A_STB = 1;
for(i=0; i<8; i++) //command 2 (#0100_0000B)
{
A_STB = 0;
A_CLK = 0;
if(i==6) //command2:01
A_DATA = 1;
else
A_DATA = 0;
A_CLK = 1;
}
A_STB = 1;
for(i=0; i<8; i++) //command 3 (#1100_0000B)
{
A_STB = 0;
A_CLK = 0;
if(i==6 || i==7)
A_DATA = 1;
else
A_DATA = 0;
A_CLK = 1;
}
for(i=0; i<14; i++)
{
Mask = 0x01;
for(j=0; j<8; j++)
{
A_STB = 0;
A_CLK = 0;
if(seg_data[0][i] & Mask)A_DATA = 1;
else A_DATA = 0;
A_CLK = 1;
Mask <<= 1;
}
}
A_STB = 1;
for(i=0; i<8; i++) //command 4 (#1000_0100B)
{
A_STB = 0;
A_CLK = 0;
if(i==0 ||i==1 ||i==2 ||i==3 || i==7) //pulse width=14/16
A_DATA = 1;
else
A_DATA = 0;
A_CLK = 1;
}
A_STB = 1;
}
void Make_B(void)
{
uint8_t i,j;
uint8_t Mask;
B_STB = 1;
B_CLK = 1;
for(i=0; i<8; i++) //command 1 (#0000_0011B)
{
B_STB = 0;
B_CLK = 0;
if( i==0) //5grid, 8segment
B_DATA = 1;
else
B_DATA = 0;
B_CLK = 1;
}
B_STB = 1;
for(i=0; i<8; i++) //command 2 (#0100_0000B)
{
B_STB = 0;
B_CLK = 0;
if(i==6) //command2:01
B_DATA = 1;
else
B_DATA = 0;
B_CLK = 1;
}
B_STB = 1;
for(i=0; i<8; i++) //command 3 (#1100_0000B)
{
B_STB = 0;
B_CLK = 0;
if(i==6 || i==7)
B_DATA = 1;
else
B_DATA = 0;
B_CLK = 1;
}
for(i=0; i<14; i++)
{
Mask = 0x01;
for(j=0; j<8; j++)
{
B_STB = 0;
B_CLK = 0;
if(seg_data[1][i] & Mask)B_DATA = 1;
else B_DATA = 0;
B_CLK = 1;
Mask <<= 1;
}
}
B_STB = 1;
for(i=0; i<8; i++) //command 4 (#1000_0100B)
{
B_STB = 0;
B_CLK = 0;
if(i==0 ||i==1 ||i==2 ||i==3 || i==7) //pulse width=14/16
B_DATA = 1;
else
B_DATA = 0;
B_CLK = 1;
}
B_STB = 1;
}
void Make_C(void)
{
uint8_t i,j;
uint8_t Mask;
C_STB = 1;
C_CLK = 1;
for(i=0; i<8; i++) //command 1 (#0000_0011B)
{
C_STB = 0;
C_CLK = 0;
if( i==0) //5grid, 8segment
C_DATA = 1;
else
C_DATA = 0;
C_CLK = 1;
}
C_STB = 1;
for(i=0; i<8; i++) //command 2 (#0100_0000B)
{
C_STB = 0;
C_CLK = 0;
if(i==6) //command2:01
C_DATA = 1;
else
C_DATA = 0;
C_CLK = 1;
}
C_STB = 1;
for(i=0; i<8; i++) //command 3 (#1100_0000B)
{
C_STB = 0;
C_CLK = 0;
if(i==6 || i==7)
C_DATA = 1;
else
C_DATA = 0;
C_CLK = 1;
}
for(i=0; i<14; i++)
{
Mask = 0x01;
for(j=0; j<8; j++)
{
C_STB = 0;
C_CLK = 0;
if(seg_data[2][i] & Mask)C_DATA = 1;
else C_DATA = 0;
C_CLK = 1;
Mask <<= 1;
}
}
C_STB = 1;
for(i=0; i<8; i++) //command 4 (#1000_0100B)
{
C_STB = 0;
C_CLK = 0;
if(i==0 ||i==1 ||i==2 ||i==3 || i==7) //pulse width=14/16
C_DATA = 1;
else
C_DATA = 0;
C_CLK = 1;
}
C_STB = 1;
}
void Make_D(void)
{
uint8_t i,j;
uint8_t Mask;
D_STB = 1;
D_CLK = 1;
for(i=0; i<8; i++) //command 1 (#0000_0011B)
{
D_STB = 0;
D_CLK = 0;
if( i==0) //5grid, 8segment
D_DATA = 1;
else
D_DATA = 0;
D_CLK = 1;
}
D_STB = 1;
for(i=0; i<8; i++) //command 2 (#0100_0000B)
{
D_STB = 0;
D_CLK = 0;
if(i==6) //command2:01
D_DATA = 1;
else
D_DATA = 0;
D_CLK = 1;
}
D_STB = 1;
for(i=0; i<8; i++) //command 3 (#1100_0000B)
{
D_STB = 0;
D_CLK = 0;
if(i==6 || i==7)
D_DATA = 1;
else
D_DATA = 0;
D_CLK = 1;
}
for(i=0; i<14; i++)
{
Mask = 0x01;
for(j=0; j<8; j++)
{
D_STB = 0;
D_CLK = 0;
if(seg_data[3][i] & Mask)D_DATA = 1;
else D_DATA = 0;
D_CLK = 1;
Mask <<= 1;
}
}
D_STB = 1;
for(i=0; i<8; i++) //command 4 (#1000_0100B)
{
D_STB = 0;
D_CLK = 0;
if(i==0 ||i==1 ||i==2 ||i==3 || i==7) //pulse width=14/16
D_DATA = 1;
else
D_DATA = 0;
D_CLK = 1;
}
D_STB = 1;
}
extern volatile uint8_t Power_On;
extern volatile uint8_t Tx_Run_Mode;
extern volatile uint8_t Tx_Fan_Speed;
extern volatile uint8_t Tx_Reservation_Hour;
extern uint16_t Pm_1_0_value, Pm_2_5_value, Pm_10_value;
extern uint16_t CO2_Value;
extern uint8_t CO2_quality;
extern uint8_t PM2_5_quality;
extern uint8_t PM10_quality;
extern uint8_t Kids_Lock;
extern uint16_t Main_Err_Code;
extern uint8_t Vsp_Mode;
extern uint8_t Test_Mode_Step;
extern uint8_t Test_Mode_Sa_Ea_Sel;
extern uint8_t Main_Modbus_ID;
extern uint8_t Ventilation_SA[5];
extern uint8_t Ventilation_EA[5];
extern uint8_t AirClean_SA[5];
extern uint8_t AirClean_EA[5];
extern uint8_t Bypass_SA[5];
extern uint8_t Bypass_EA[5];
extern uint16_t SA_rpm, EA_rpm;
extern uint8_t Wifi_Status;
extern uint8_t Blink_Toggle, FastBlink_Toggle;
void Display_update(void)
{
uint8_t Num_1000, Num_100, Num_10, Num_1;
uint8_t Tmp_Speed = 0;
uint16_t Err;
if(Vsp_Mode == TX_DATA_MODE_SETTING)
{
Led_OnOff(100, 0); // all off
Disp_Segdata(2, 14, 14, 14, 14); // ALL OFF
if((Test_Mode_Step >= 1)&&(Test_Mode_Step <= 5)) // vent
{
Led_OnOff(K_VENT, 1);
Tmp_Speed = Test_Mode_Step-1;
if(Test_Mode_Sa_Ea_Sel == 0)
{
Disp_Segdata(0, 14, 5, 16, 14); // " SA "
Num_10 = Ventilation_SA[Tmp_Speed]%100/10;
Num_1 = Ventilation_SA[Tmp_Speed]%10;
Disp_Segdata(1, 14, 14, Num_10, Num_1);
Num_1000 = (uint8_t)(SA_rpm%10000/1000);
Num_100 = (uint8_t)(SA_rpm%1000/100);
Num_10 = (uint8_t)(SA_rpm%100/10);
Num_1 = (uint8_t)(SA_rpm%10);
Disp_Segdata(2, Num_1000, Num_100, Num_10, Num_1);
}
else
{
Disp_Segdata(0, 14, 12, 16, 14); // " EA "
Num_10 = Ventilation_EA[Tmp_Speed]%100/10;
Num_1 = Ventilation_EA[Tmp_Speed]%10;
Disp_Segdata(1, 14, 14, Num_10, Num_1);
Num_1000 = (uint8_t)(EA_rpm%10000/1000);
Num_100 = (uint8_t)(EA_rpm%1000/100);
Num_10 = (uint8_t)(EA_rpm%100/10);
Num_1 = (uint8_t)(EA_rpm%10);
Disp_Segdata(2, Num_1000, Num_100, Num_10, Num_1);
}
}
else if((Test_Mode_Step >= 6)&&(Test_Mode_Step <= 10)) // air
{
Led_OnOff(K_AIR, 1);
Tmp_Speed = Test_Mode_Step-6;
if(Test_Mode_Sa_Ea_Sel == 0)
{
Disp_Segdata(0, 14, 5, 16, 14); // " SA "
Num_10 = AirClean_SA[Tmp_Speed]%100/10;
Num_1 = AirClean_SA[Tmp_Speed]%10;
Disp_Segdata(1, 14, 14, Num_10, Num_1);
Num_1000 = (uint8_t)(SA_rpm%10000/1000);
Num_100 = (uint8_t)(SA_rpm%1000/100);
Num_10 = (uint8_t)(SA_rpm%100/10);
Num_1 = (uint8_t)(SA_rpm%10);
Disp_Segdata(2, Num_1000, Num_100, Num_10, Num_1);
}
else
{
Disp_Segdata(0, 14, 12, 16, 14); // " EA "
Num_10 = AirClean_EA[Tmp_Speed]%100/10;
Num_1 = AirClean_EA[Tmp_Speed]%10;
Disp_Segdata(1, 14, 14, Num_10, Num_1);
Num_1000 = (uint8_t)(EA_rpm%10000/1000);
Num_100 = (uint8_t)(EA_rpm%1000/100);
Num_10 = (uint8_t)(EA_rpm%100/10);
Num_1 = (uint8_t)(EA_rpm%10);
Disp_Segdata(2, Num_1000, Num_100, Num_10, Num_1);
}
}
switch(Test_Mode_Step)
{
case 1:
case 6:
case 11:
Led_OnOff(K_WIND1, 1);
break;
case 2:
case 7:
case 12:
Led_OnOff(K_WIND2, 1);
break;
case 3:
case 8:
case 13:
Led_OnOff(K_WIND3, 1);
break;
case 4:
case 9:
case 14:
Led_OnOff(K_WIND4, 1);
break;
case 5:
case 10:
case 15:
Led_OnOff(K_WIND5, 1);
break;
case 16:
Disp_Segdata(0, 14, 1, 17, 14); // " Id "
Num_10 = Main_Modbus_ID%100/10;
Num_1 = Main_Modbus_ID%10;
Disp_Segdata(1, 14, 14, Num_10, Num_1);
break;
case 0x11:
if(Main_BxD_FW_Version[1] == 'J')Num_1000 = 18; //J
else if(Main_BxD_FW_Version[1] == 'I')Num_1000 = 1; //I
else Num_1000 = 13; //-
Num_10 = Main_BxD_FW_Version[2]/10;
Num_1 = Main_BxD_FW_Version[2]%10;
Disp_Segdata(0, Num_1000, 13, Num_10, Num_1); // " J- " 메인 버전
Num_10 = ROOMCON_FW_VERSION/10;
Num_1 = ROOMCON_FW_VERSION%10;
Disp_Segdata(1, 1, 13, Num_10, Num_1); // " I- " 룸콘 버전
Num_10 = Sensor_BxD_Version/10;
Num_1 = Sensor_BxD_Version%10;
Disp_Segdata(2, 5, 13, Num_10, Num_1); // " S- " 센서보드 버전
break;
default:
break;
}
return;
}
////////////////////////////////////////////////////////////////
Led_OnOff(100, 0); // all off
if(Wifi_Status == 1) // connect
{
Led_OnOff(K_IOT, 1);
}
else if(Wifi_Status == 2) // wait slow
{
Led_OnOff(K_IOT, Blink_Toggle);
}
else if(Wifi_Status == 3) // fast
{
Led_OnOff(K_IOT, FastBlink_Toggle);
}
else // dis connect
{
Led_OnOff(K_IOT, 0);
}
Err = Main_Err_Code&(ERROR_FILTER_CLEAN|ERROR_FILTER_CHANGE|ERROR_SOJA_CHANGE|ERROR_SA|ERROR_EA|ERROR_TEMP|ERROR_CO2|ERROR_DUST|ERROR_IN_COM);
if(Err)Led_OnOff(K_JUMKEOM, 1);
////////////////////////////////////////////////////////////////
if(Power_On == 0)
{
Disp_Segdata(0, 14, 14, 14, 14); // ALL OFF
Disp_Segdata(1, 14, 14, 14, 14); // ALL OFF
Disp_Segdata(2, 14, 14, 14, 14); // ALL OFF
if(Main_Err_Code)Led_OnOff(K_JUMKEOM, 1);
if(Main_Err_Code&ERROR_FILTER_CLEAN)
{
Led_OnOff(K_FILTER_CLEAN, 1);
Led_OnOff(K_SOJA_CLEAN, 1);
}
else if(Main_Err_Code&ERROR_FILTER_CHANGE)
{
Led_OnOff(K_FILTER_CHANGE, 1);
}
else if(Main_Err_Code&ERROR_SOJA_CHANGE)
{
Led_OnOff(K_SOJA_CHANGE, 1);
}
else if(Main_Err_Code&ERROR_SA)
{
Disp_Segdata(1, 12, 13, 0, 9); // E-09
}
else if(Main_Err_Code&ERROR_EA)
{
Disp_Segdata(1, 12, 13, 1, 0); // E-10
}
else if(Main_Err_Code&ERROR_TEMP)
{
Disp_Segdata(1, 12, 13, 0, 2); // E-02
}
else if(Main_Err_Code&ERROR_HUMI)
{
;
}
else if(Main_Err_Code&ERROR_TVOC)
{
;
}
else if(Main_Err_Code&ERROR_CO2)
{
Disp_Segdata(1, 12, 13, 0, 6); // E-06
}
else if(Main_Err_Code&ERROR_DUST)
{
Disp_Segdata(1, 12, 13, 1, 8); // E-08
}
else if(Main_Err_Code&ERROR_IN_COM)
{
Disp_Segdata(1, 12, 13, 0, 7); // E-07
}
return;
}
Num_1000= Num_100= Num_10= Num_1= 14; // blank
if(CO2_Value>=1000)Num_1000 = CO2_Value%10000/1000;
if(CO2_Value>=100)Num_100 = CO2_Value%1000/100;
if(CO2_Value>=10)Num_10 = CO2_Value%100/10;
Num_1 = CO2_Value%10;
Disp_Segdata(2, Num_1000, Num_100, Num_10, Num_1);
Num_1000= Num_100= Num_10= Num_1= 14; // blank
if(Pm_10_value>=1000)Num_1000 = Pm_10_value%10000/1000;
if(Pm_10_value>=100)Num_100 = Pm_10_value%1000/100;
if(Pm_10_value>=10)Num_10 = Pm_10_value%100/10;
Num_1 = Pm_10_value%10;
Disp_Segdata(1, Num_1000, Num_100, Num_10, Num_1);
Num_1000= Num_100= Num_10= Num_1= 14; // blank
if(Pm_2_5_value>=1000)Num_1000 = Pm_2_5_value%10000/1000;
if(Pm_2_5_value>=100)Num_100 = Pm_2_5_value%1000/100;
if(Pm_2_5_value>=10)Num_10 = Pm_2_5_value%100/10;
Num_1 = Pm_2_5_value%10;
Disp_Segdata(0, Num_1000, Num_100, Num_10, Num_1);
switch(CO2_quality)
{
case 0x00: Led_OnOff(K_CO2_1, 1);break;
case 0x01: Led_OnOff(K_CO2_2, 1);break;
case 0x02: Led_OnOff(K_CO2_3, 1);break;
case 0x04:
default:
Led_OnOff(K_CO2_3, 1);
Led_OnOff(K_CO2_4, 1);
break;
}
switch(PM2_5_quality)
{
case 0x00: Led_OnOff(K_PM25_1, 1);break;
case 0x01: Led_OnOff(K_PM25_2, 1); break;
case 0x02: Led_OnOff(K_PM25_3, 1); break;
case 0x04:
default:
Led_OnOff(K_PM25_3, 1);
Led_OnOff(K_PM25_4, 1);
break;
}
switch(PM10_quality)
{
case 0:
Led_OnOff(K_PM10_1, 1);
break;
case 0x01:
Led_OnOff(K_PM10_2, 1);
break;
case 0x02:
Led_OnOff(K_PM10_3, 1);
break;
case 0x04:
default:
Led_OnOff(K_PM10_3, 1);
Led_OnOff(K_PM10_4, 1);
break;
}
switch(Tx_Run_Mode)
{
case MODE_VENT: Led_OnOff(K_VENT, 1); break;
case MODE_AUTO: Led_OnOff(K_AUTO, 1);break;
case MODE_AIR_CLEAN: Led_OnOff(K_AIR, 1); break;
default: break;
}
switch(Tx_Fan_Speed)
{
case 1: Led_OnOff(K_WIND1, 1);break;
case 2: Led_OnOff(K_WIND2, 1);break;
case 3: Led_OnOff(K_WIND3, 1);break;
case 4: Led_OnOff(K_WIND4, 1);break;
case 5: Led_OnOff(K_WIND5, 1);break;
default: break;
}
switch(Tx_Reservation_Hour)
{
case 1:
case 2:
case 3:
Led_OnOff(K_TIME_1, 1);
break;
case 4:
case 5:
case 6:
case 7:
Led_OnOff(K_TIME_4, 1);
break;
case 8:
Led_OnOff(K_TIME_8, 1);
break;
default:
break;
}
Led_OnOff(K_LOCK, Kids_Lock);
}
uint8_t Sel_Pos = 0;
void Display_process(void)
{
switch(Sel_Pos)
{
case 0:
Make_A();
Sel_Pos++;
break;
case 1:
Make_B();
Sel_Pos++;
break;
case 2:
Make_C();
Sel_Pos++;
break;
case 3:
default:
Make_D();
Sel_Pos = 0;
break;
}
}