k80/hwCtrl.c
2023-10-05 16:58:27 +08:00

210 lines
4.0 KiB
C

#include "hwCtrl.h"
#include "r_cg_port.h"
#include "iodefine.h"
#include "appTask.h"
#define K74L 1
#define K74R 2
#define BOARD K74R
#if BOARD == K74R
//RIGHT
#define LEDH1 P2_bit.no3
#define LEDH2 P1_bit.no0
#define LEDH3 P1_bit.no1
#define LEDF1 P1_bit.no2
#define LEDF2 P1_bit.no3
#define LEDF3 P1_bit.no4
#define LEDM1 P4_bit.no2
#define LEDM2 P4_bit.no1
#define LEDM3 P2_bit.no2
#else
//LEFT
#define LEDH1 P2_bit.no3
#define LEDH2 P1_bit.no0
#define LEDH3 P1_bit.no1
#define LEDF1 P1_bit.no2
#define LEDF2 P1_bit.no3
#define LEDF3 P1_bit.no4
#define LEDM1 P4_bit.no2
#define LEDM2 P4_bit.no1
#define LEDM3 P2_bit.no2
#endif
#define IO_KEY5 P12_bit.no2
#define IO_KEY6 P13_bit.no7
extern uint16_t g_AdVal[3];
void FanLED_Ctrl(uint8_t state)
{
switch (state)
{
case 0:
LEDF1 = LED_OFF;
LEDF2 = LED_OFF;
LEDF3 = LED_OFF;
break;
case 3:
LEDF1 = LED_ON;
LEDF2 = LED_OFF;
LEDF3 = LED_OFF;
break;
case 2:
LEDF1 = LED_ON;
LEDF2 = LED_ON;
LEDF3 = LED_OFF;
break;
case 1:
LEDF1 = LED_ON;
LEDF2 = LED_ON;
LEDF3 = LED_ON;
break;
default:
break;
}
}
void HeatLED_Ctrl(uint8_t state)
{
switch (state)
{
case 0:
LEDH1 = LED_OFF;
LEDH2 = LED_OFF;
LEDH3 = LED_OFF;
break;
case 3:
LEDH1 = LED_ON;
LEDH2 = LED_OFF;
LEDH3 = LED_OFF;
break;
case 2:
LEDH1 = LED_ON;
LEDH2 = LED_ON;
LEDH3 = LED_OFF;
break;
case 1:
LEDH1 = LED_ON;
LEDH2 = LED_ON;
LEDH3 = LED_ON;
break;
default:
break;
}
}
void AnmoLED_Ctrl(uint8_t state)
{
switch (state)
{
case 0:
LEDM1 = LED_OFF;
LEDM2 = LED_OFF;
LEDM3 = LED_OFF;
break;
case 3:
LEDM1 = LED_ON;
LEDM2 = LED_OFF;
LEDM3 = LED_OFF;
break;
case 2:
LEDM1 = LED_ON;
LEDM2 = LED_ON;
LEDM3 = LED_OFF;
break;
case 1:
LEDM1 = LED_ON;
LEDM2 = LED_ON;
LEDM3 = LED_ON;
break;
default:
break;
}
}
#define KEY_AD_V1 690
#define KEY_AD_V2 510
#define KEY_AD_TH 50
#define KEY5_AD_V1 KEY_AD_TH //0
#define KEY5_AD_V2 254
#define KEY5_AD_V3 455
#define KEY5_AD_V4 658
#define KEY5_AD_V5 902
uint8_t GetKeyState(uint8_t keyno)
{
switch (keyno)
{
#if BOARD == K74R
//RIGHT
case KEY_FAN:
return g_AdVal[0]<1000?1:0;
break;
case KEY_JR:
return g_AdVal[1]<1000?1:0;
break;
case KEY_AM:
return (IO_KEY5==0||IO_KEY6==0)?1:0;
break;
#else
//left
case KEY_JR:
return (g_AdVal[1]>=KEY_AD_V1-KEY_AD_TH && g_AdVal[1]<=KEY_AD_V1+KEY_AD_TH)?1:0;
break;
case KEY_FAN:
return (g_AdVal[1]>=KEY_AD_V2-KEY_AD_TH && g_AdVal[1]<=KEY_AD_V2+KEY_AD_TH)?1:0;
break;
case KEY_TTQ:
return IO_KEY5;
break;
case KEY_TTH:
return IO_KEY6;
break;
case KEY_HGQ:
return IO_KEY3;
break;
case KEY_HGH:
return IO_KEY4;
break;
case KEY_KBH:
return IO_KEY7;
break;
case KEY_KBQ:
return IO_KEY8;
break;
case KEY_ZDS:
return (g_AdVal[0]>=KEY5_AD_V4-KEY_AD_TH && g_AdVal[0]<=KEY5_AD_V4+KEY_AD_TH)?1:0;
break;
case KEY_ZDJ:
return (g_AdVal[0]>=KEY5_AD_V1-KEY_AD_TH && g_AdVal[0]<=KEY5_AD_V1+KEY_AD_TH)?1:0;
break;
case KEY_TZS:
return (g_AdVal[0]>=KEY5_AD_V2-KEY_AD_TH && g_AdVal[0]<=KEY5_AD_V2+KEY_AD_TH)?1:0;
break;
case KEY_TZJ:
return (g_AdVal[0]>=KEY5_AD_V3-KEY_AD_TH && g_AdVal[0]<=KEY5_AD_V3+KEY_AD_TH)?1:0;
break;
case KEY_FW:
return (g_AdVal[0]>=KEY5_AD_V5-KEY_AD_TH && g_AdVal[0]<=KEY5_AD_V5+KEY_AD_TH)?1:0;
break;
#endif
default:
return 0;
break;
}
}