资源简介
该为CCP协议的源代码,包括命令处理机和DAQ处理机,符合CCP2.1标准。集成到单片机后可以与上位机软件CANape等进行标定。

代码片段和文件信息
typedef struct ccpOdtEntry {
unsigned char *ptr;
} ccpOdtEntry_t;
typedef ccpOdtEntry_t ccpODT_t[7];
typedef struct ccpDaqList {
ccpODT_t odt[3];
unsigned short prescaler;
unsigned short cycle;
unsigned char eventChannel;
unsigned char last;
unsigned char flags;
} ccpDaqList_t;
typedef struct {
unsigned char b[8];
} ccpMsg_t;
typedef struct {
unsigned char len;
unsigned char rp;
ccpMsg_t msg[(3 * 2)];
} ccpQueue_t;
struct ccp {
unsigned char Crm[8];
unsigned char SessionStatus;
unsigned char SendStatus;
unsigned char * MTA[2];
ccpQueue_t Queue;
ccpOdtEntry_t *DaqListPtr;
ccpDaqList_t DaqList[2];
unsigned char UserSessionStatus;
unsigned short CheckSumSize;
};
extern struct ccp ccp;
extern void ccpInit(void);
extern void ccpDaq(unsigned char eventChannel);
extern void ccpCommand(unsigned char * msg);
extern unsigned char ccpSendCallBack(void);
void ccpSendCrm(void);
extern unsigned char ccpBackground(void);
extern void ccpSend(unsigned char * msg);
extern void ccpUserBackground(void);
extern unsigned char * ccpGetPointer(unsigned char addr_ext unsigned long addr);
unsigned char ccpStationId[] = “ECU00001“;
struct ccp ccp;
void ccpSendCrm(void) {
;
if (ccp.SendStatus&(0x20 | 0x10 | 0x40)) {
ccp.SendStatus |= 0x01;
}
else {
ccp.SendStatus |= 0x10;
ccpSend(ccp.Crm);
}
;
}
void ccpQueueInit(void) {
ccp.Queue.len = 0;
ccp.Queue.rp = 0;
}
unsigned char ccpQueueWrite(ccpMsg_t *msg) {
if (ccp.Queue.len >= (3 * 2)) return 0;
ccp.Queue.msg[(ccp.Queue.rp + ccp.Queue.len) % (3 * 2)] = *msg;
ccp.Queue.len++;
return 1;
}
static unsigned char ccpWriteMTA(unsigned char n unsigned char size unsigned char * d) {
while (size-->0) {
*(ccp.MTA[n]) = *d;
ccp.MTA[n]++;
d++;
}
return 1;
}
static void ccpReadMTA(unsigned char n unsigned char size unsigned char * d) {
while (size-->0) {
*d = *(ccp.MTA[n]);
d++;
ccp.MTA[n]++;
}
}
static unsigned char ccpClearDaqList(unsigned char daq) {
unsigned char * p;
unsigned char * pl;
if (daq >= 2) return 0;
p = (unsigned char *)&ccp.DaqList[daq];
pl = p + sizeof(ccpDaqList_t);
while (p ccp.SessionStatus |= 0x02;
ccpQueueInit();
return 3;
}
static unsigned char ccpPrepareDaq(unsigned char daq unsigned char last unsigned char eventChannel unsigned short prescaler) {
if (daq >= 2) return 0;
ccp.DaqList[daq].eventChannel = eventChannel;
if (prescaler == 0) prescaler = 1;
ccp.DaqList[daq].prescaler = prescaler;
ccp.DaqList[daq].cycle = 1;
ccp.DaqList[daq].last = last;
ccp.DaqList[daq].flags = 0x04;
return 1;
}
static unsigned char ccpStartDaq(unsigned char daq
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 10217 2017-11-19 08:38 CCP.c
- 上一篇:连连看游戏的设计思路文档
- 下一篇:Qt类继承关系图
相关资源
- 我的界面(visual foxpro)源码
- 易语言:一键cf基址源码
- The Secret Path 3D 3D魔方迷宫[源码][scra
- scratch垃圾分类源码(最终版本).sb
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 安卓QQ6.71协议源码易语言,qq协议源码
- 编译原理实验工具及参考源码(lex&
- E盾偷后台工具源码
- WPE三件套(WPE+CCP+E2G)冰枫修改版
- 飞思卡尔单片机MC9S12XS12G128驱动(硬件
- 51单片机PWM程序,占空比、周期可调整
- UNIX/LINUX编程实践教程的源码
- 单片机和adc0809数字电压表
- PIC单片机完成的电子密码锁
- 十以内加减法练习 powerbuilder源码
- 单片机、ADC0808809设计简易数字电压表
- 51单片机多功能自行车测速仪
- 农场开发项目
- OCR源码
- 单片机做的6位时分秒数字钟
- 单片机电子时钟 闹钟 日历
- 音乐代码转换软件 单片机编程时用
- 单片机课程设计 篮球计分器
- PLC上位机编程软件
- 用foobar2000听google音乐[更新一下]
- 学生信息管理系统源码
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
评论
共有 条评论