⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lin_api.c

📁 linBUS驱动原码
💻 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 + -