192 lines
3.9 KiB
C
192 lines
3.9 KiB
C
#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"
|
|
#include "r_cg_wdt.h"
|
|
|
|
extern uint16_t g_AdVal[3];
|
|
|
|
static uint16_t keydelay[KEY_NUM]={0};
|
|
static uint8_t keyflag[KEY_NUM]={0};
|
|
|
|
typedef struct
|
|
{
|
|
//BYTE 0
|
|
uint8_t HG:2;//滑轨
|
|
uint8_t KB:2;//靠背
|
|
uint8_t TZ:2;//头枕
|
|
uint8_t REVERSE01:2;
|
|
//BYTE 1
|
|
uint8_t TT:2;
|
|
uint8_t REVERSE11:2;
|
|
uint8_t ZY:2;
|
|
uint8_t REVERSE12:2;
|
|
//BYTE 2
|
|
uint8_t REVERSE21:4;
|
|
uint8_t FW:1;//复位
|
|
uint8_t REVERSE22:3;
|
|
//3-7
|
|
uint8_t REVERSE3;
|
|
uint8_t REVERSE4;
|
|
uint8_t REVERSE5;
|
|
uint8_t REVERSE6;
|
|
uint8_t REVERSE7;
|
|
}LIN_MSG_TYPE;
|
|
|
|
LIN_MSG_TYPE LIN_msg_buf;
|
|
const uint8_t LIN_Init_data[] = {0x00,0x00,0x80,0xff,0xff,0xff,0xff,0x0f};
|
|
void HardWare_Init(void)
|
|
{
|
|
IO_Init();
|
|
//时基初始化
|
|
R_TAU0_Channel0_Start();
|
|
|
|
//AD 初始化
|
|
R_ADC_Start();
|
|
R_ADC_Set_OperationOn();
|
|
R_TAU0_Channel1_Start();
|
|
|
|
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;
|
|
}
|
|
for(i=0;i<8;i++)
|
|
{
|
|
((uint8_t *)(&LIN_msg_buf))[i] = LIN_Init_data[i];
|
|
}
|
|
}
|
|
|
|
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);
|
|
|
|
}
|
|
|
|
#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_txbuf1[8];
|
|
void TxMsgPro(void)
|
|
{
|
|
uint8_t temp=0,i;
|
|
temp = 0xf0;
|
|
#if BOARDCFG == LEFT_BOARD
|
|
LIN_msg_buf.FW = GetKeyFlag(SIGID_KEY13);
|
|
LIN_msg_buf.TT = GetKeyFlag(SIGID_KEY6)<<1|GetKeyFlag(SIGID_KEY5);
|
|
LIN_msg_buf.HG = GetKeyFlag(SIGID_KEY3)<<1|GetKeyFlag(SIGID_KEY4);
|
|
LIN_msg_buf.KB = GetKeyFlag(SIGID_KEY8)<<1|GetKeyFlag(SIGID_KEY7);
|
|
LIN_msg_buf.TZ = GetKeyFlag(SIGID_KEY9)<<1|GetKeyFlag(SIGID_KEY11);
|
|
LIN_msg_buf.ZY = GetKeyFlag(SIGID_KEY12)<<1|GetKeyFlag(SIGID_KEY10);
|
|
temp |= GetKeyFlag(SIGID_KEY1)<<1;
|
|
temp |= GetKeyFlag(SIGID_KEY2)<<0;
|
|
#else
|
|
LIN_msg_buf.FW = GetKeyFlag(SIGID_KEY13);
|
|
LIN_msg_buf.HG = GetKeyFlag(SIGID_KEY5)<<1|GetKeyFlag(SIGID_KEY6);
|
|
LIN_msg_buf.TT = GetKeyFlag(SIGID_KEY4)<<1|GetKeyFlag(SIGID_KEY3);
|
|
LIN_msg_buf.KB = GetKeyFlag(SIGID_KEY7)<<1|GetKeyFlag(SIGID_KEY8);
|
|
LIN_msg_buf.TZ = GetKeyFlag(SIGID_KEY9)<<1|GetKeyFlag(SIGID_KEY11);
|
|
LIN_msg_buf.ZY = GetKeyFlag(SIGID_KEY10)<<1|GetKeyFlag(SIGID_KEY12);
|
|
temp |= GetKeyFlag(SIGID_KEY1)<<0;
|
|
temp |= GetKeyFlag(SIGID_KEY2)<<1;
|
|
#endif
|
|
for (i = 0; i < 8; i++)
|
|
{
|
|
g_txbuf1[i] = ((uint8_t *)(&LIN_msg_buf))[i];
|
|
}
|
|
g_txbuf2[0] = temp;
|
|
g_txbuf2[1] = 0x0b;
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
}
|
|
|