K74B/87400/usr/fcode/hwCtrl.c

153 lines
3.1 KiB
C
Raw Permalink Normal View History

2024-01-25 14:22:18 +08:00
#include "hwCtrl.h"
#include "PINdef.h"
#define IO_INPUT 0x01
#define IO_OUTPUT 0x00
void IO_Init(void)
{
}
void Output_Ctrl(uint8_t state)
{
}
#define KEY_AD_TH 60
uint8_t isKeyMatchAd(uint16_t val,uint16_t match)
{
if ( val >= (match - KEY_AD_TH) && val <= (match + KEY_AD_TH))
{
return 1;
}
return 0;
}
#define KEY_AD_V0 60
#define KEY_AD_V1 492
#define KEY_AD_V2 882
#define KEY_AD_V3 1277
#define KEY_AD_V4 1733
#define KEY_AD_V5 992
#define KEY_AD_V6 1350
uint16_t g_AdVal[3];
uint8_t GetKeyState(uint8_t keyno)
{
switch (keyno)
{
case SIGID_KEY1:
return isKeyMatchAd(g_AdVal[ADCH_KEYAD1],KEY_AD_V5);
case SIGID_KEY2:
return isKeyMatchAd(g_AdVal[ADCH_KEYAD1],KEY_AD_V6);
case SIGID_KEY3:
return GPIO_Read(IO_KEY3)?1:0;
case SIGID_KEY4:
return GPIO_Read(IO_KEY4)?1:0;
case SIGID_KEY5:
return GPIO_Read(IO_KEY5)?1:0;
case SIGID_KEY6:
return GPIO_Read(IO_KEY6)?1:0;
case SIGID_KEY7:
return GPIO_Read(IO_KEY7)?1:0;
case SIGID_KEY8:
return GPIO_Read(IO_KEY8)?1:0;
case SIGID_KEY9:
return isKeyMatchAd(g_AdVal[ADCH_KEYAD2],KEY_AD_V0);
case SIGID_KEY10:
return isKeyMatchAd(g_AdVal[ADCH_KEYAD2],KEY_AD_V1);
case SIGID_KEY13:
return isKeyMatchAd(g_AdVal[ADCH_KEYAD2],KEY_AD_V2);
case SIGID_KEY11:
return isKeyMatchAd(g_AdVal[ADCH_KEYAD2],KEY_AD_V3);
case SIGID_KEY12:
return isKeyMatchAd(g_AdVal[ADCH_KEYAD2],KEY_AD_V4);
default:
return 0;
}
}
#define LED_OFF GPIO_LOW
#define LED_ON GPIO_HIGH
#if BOARDCFG == LEFT_BOARD
#define LEDF1 IO_LED4
#define LEDF2 IO_LED5
#define LEDF3 IO_LED6
#define LEDH1 IO_LED1
#define LEDH2 IO_LED2
#define LEDH3 IO_LED3
#else
#define LEDF1 IO_LED1
#define LEDF2 IO_LED2
#define LEDF3 IO_LED3
#define LEDH1 IO_LED4
#define LEDH2 IO_LED5
#define LEDH3 IO_LED6
#endif
void FanLED_Ctrl(uint8_t state)
{
switch (state)
{
case 0:
GPIO_Set(LEDF1,LED_OFF);
GPIO_Set(LEDF2,LED_OFF);
GPIO_Set(LEDF3,LED_OFF);
break;
case 1:
GPIO_Set(LEDF1,LED_ON);
GPIO_Set(LEDF2,LED_OFF);
GPIO_Set(LEDF3,LED_OFF);
break;
case 2:
GPIO_Set(LEDF1,LED_ON);
GPIO_Set(LEDF2,LED_ON);
GPIO_Set(LEDF3,LED_OFF);
break;
case 3:
GPIO_Set(LEDF1,LED_ON);
GPIO_Set(LEDF2,LED_ON);
GPIO_Set(LEDF3,LED_ON);
break;
default:
break;
}
}
void HeatLED_Ctrl(uint8_t state)
{
switch (state)
{
case 0:
GPIO_Set(LEDH1,LED_OFF);
GPIO_Set(LEDH2,LED_OFF);
GPIO_Set(LEDH3,LED_OFF);
break;
case 1:
GPIO_Set(LEDH1,LED_ON);
GPIO_Set(LEDH2,LED_OFF);
GPIO_Set(LEDH3,LED_OFF);
break;
case 2:
GPIO_Set(LEDH1,LED_ON);
GPIO_Set(LEDH2,LED_ON);
GPIO_Set(LEDH3,LED_OFF);
break;
case 3:
GPIO_Set(LEDH1,LED_ON);
GPIO_Set(LEDH2,LED_ON);
GPIO_Set(LEDH3,LED_ON);
break;
default:
break;
}
}