📄 lin_api.c
字号:
#define LIN_API_GLOBALS
#include "reg52.h"
#include "lin_cfg.h"
l_u8 TempSchedule;
t_response response_data;
l_bool flag_5ms;
l_u8 code ID_FIELD[64]={
0X80,0XC1,0X42,0X03,0XC4,0X85,0X06,0X47,0X08,0X49,0XCA,0X8B,0X4C,0X0D,0X8E,0XCF,
0X50,0X11,0X92,0XD3,0X14,0X55,0XD6,0X97,0XD8,0X99,0X1A,0X5B,0X9C,0XDD,0X5E,0X1F,
0X20,0X61,0XE2,0XA3,0X64,0X25,0XA6,0XE7,0XA8,0XE9,0X6A,0X2B,0XEC,0XAD,0X2E,0X6F,
0XF0,0XB1,0X32,0X73,0XB4,0XF5,0X76,0X37,0X78,0X39,0XBA,0XFB,0X3C,0X7D,0XFE,0XBF
};
extern unsigned char display(unsigned char *sd);
void l_ifc_init_932led(void)
{
//进度表初始化
//波特率
}
l_bool l_ifc_connect_932led(void)
{
if(l_send_break())
{
return(1);
}
l_delay(TICKSPERBIT*4);
l_send_bytes(0x55);
l_send_bytes(id_932led);//可以加ID_Table[]
if(l_rec_data(response_data.DATA,2))//可以加ID_Table[]
{
return 1;
}
else if(response_data.DATA[0]==0x01)//可以加led932_signal
{
display(response_data.DATA);
response_data.DATA[1]=0;
TR2=1;
return(0);
}
}
l_bool l_flg_tst_5ms(void)
{
return flag_5ms;
}
void l_flg_clr_5ms()
{
flag_5ms=0;
}
void l_u8_wr(l_signal_handle sss,l_u8 v)
{
l_send_break();
l_send_bytes(0x55);
l_send_bytes(ID_FIELD[sss.id&0x3f]);
l_send_data(&v,sss.length);
}
void l_u8_ptr_wr(l_signal_handle sss,l_u8 *wr_ptr)
{
l_send_break();
l_send_bytes(0x55);
l_send_bytes(ID_FIELD[sss.id&0x3f]);
l_send_data(wr_ptr,sss.length);
}
l_u8 l_u8_rd(l_signal_handle sss)
{
l_send_break();
l_delay(TICKSPERBIT);
l_send_bytes(0x55);
l_send_bytes(ID_FIELD[sss.id&0x3f]);
l_rec_data(response_data.DATA,sss.length);
display(response_data.DATA);
return response_data.DATA[0];
}
void l_u8_ptr_rd(l_signal_handle sss,l_u8 * rd_ptr,l_u8 num)
{
l_send_break();
l_delay(TICKSPERBIT);
l_send_bytes(0x55);
l_send_bytes(ID_FIELD[sss.id&0x3f]);
l_rec_data(response_data.DATA,sss.length);
for(;num>0;num--)
{
rd_ptr[num-1]=response_data.DATA[num-1];
}
}
void l_sch_set(l_ifc_handle iii,l_schedule_handle sch,l_u8 ent)
{
iii=iii;
TempSchedule=sch[ent].next_sch_list;
}
l_u8 l_sch_tick(l_ifc_handle iii)
{
iii=iii;
TempSchedule++;
if(TempSchedule==SCH_NUM)
TempSchedule=0;
return(TempSchedule);
}
void l_t2_isr() interrupt 5
{
static ms_cout=0;
TH2=0XEE;
TL2=0X00;
ms_cout++;
if(ms_cout==40)
{
ms_cout=0;
flag_5ms=1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -