149 lines
2.3 KiB
C
Raw Permalink Normal View History

2023-11-21 08:26:01 +08:00
#include "r_cg_macrodriver.h"
#include "appTask.h"
#include "event.h"
#include "r_cg_port.h"
#include "r_cg_timer.h"
#include "r_cg_wdt.h"
#include "hwCtrl.h"
#include "r_cg_adc.h"
#include "r_cg_serial.h"
#include "lin_user.h"
#include "UARTLIN_Drv.h"
#include "PINdef.h"
static uint16_t keydelay[KEY_NUM]={0};
static uint8_t keyflag[KEY_NUM]={0};
void HardWare_Init(void)
{
IO_Init();
//时基初始化
R_TAU0_Channel0_Start();
OUT_BL_CTRL = 1;
OUT_LINEN = 1;
UARTLIN_Init();
}
void Variable_Init(void)
{
uint8_t i=0;
for (i = 0; i < KEY_NUM; i++)
{
keydelay[i] = 0;
keyflag[i] = 0;
}
}
void keyLogic(uint8_t keyno)
{
switch (keyno)
{
default:
break;
}
}
#define KEY_DELAY_TIME 6
void keyScan(void)//5ms
{
uint8_t keyval,i;
for (i = 0; i < KEY_NUM; i++)
{
keyval = GetKeyState(i+1);
if (keyval == 1 && keyflag[i] == 0)
{
keydelay[i]++;
if (keydelay[i] > KEY_DELAY_TIME)//30ms
{
keyflag[i] = 1;
keydelay[i] = KEY_DELAY_TIME;
//keyLogic(i);
}
}
else if (keyval == 0)
{
keyflag[i] = 0;
keydelay[i] = 0;
}
}
}
uint8_t GetKeyFlag(uint8_t keyid)
{
if (keyid > 0 && keyid <= KEY_NUM)
{
return keyflag[keyid-1]?1:0;
}
else
{
return 0;
}
}
extern uint8_t g_txbuf[8];
void TxMsgPro(void)
{
uint8_t temp1=0;
temp1 |= GetKeyFlag(SIGID_KEY1)<<0;
temp1 |= GetKeyFlag(SIGID_KEY2)<<1;
temp1 |= GetKeyFlag(SIGID_KEY3)<<2;
temp1 |= GetKeyFlag(SIGID_KEY4)<<3;
g_txbuf[4] = temp1;
}
uint8_t fan_state,heat_state;
void LED_Ctrl(void)
{
fan_state = (g_rxbuf[0]&0xc0)>>6;
heat_state = (g_rxbuf[0]&0x30)>>4;
FanLED_Ctrl(fan_state);
HeatLED_Ctrl(heat_state);
}
void AppTask(void)
{
if (TimeBase5msFlag == 1)
{
TimeBase5msFlag = 0;
keyScan();
TxMsgPro();
}
if (TimeBase10msFlag == 1)
{
TimeBase10msFlag = 0;
LED_Ctrl();
}
if (TimeBase100msFlag == 1)
{
TimeBase100msFlag = 0;
R_WDT_Restart();
}
if (TimeBase1000msFlag == 1)
{
TimeBase1000msFlag = 0;
}
}