📄 af_set.h
字号:
/****************************************Copyright (c)**************************************************
***文件名称:CAN验收滤波测试程序
***作者:张利刚
***单位:中科院微系统所嘉兴分中心网络组
***时间:2008年7月17日
********************************************************************************************************/
/********************************************************************************************************/
#ifndef _AF_SET_H_
#define _AF_SET_H_
/************************************************************************/
/* 头文件包含 */
/************************************************************************/
#include "config.h"
/************************************************************************/
/* C++代码兼容 */
/************************************************************************/
#ifdef __cplusplus
{
#endif
/******************************
****宏定义读取AFRAM其实地址的内容
*********************************************/
#define CAN_ACCEPT_BASE_RAM_ADDR 0xE0038000
#define REGAFRAM (*((volatile long *)CAN_ACCEPT_BASE_RAM_ADDR))
/******************************************************************
定义ARMR寄存器位域
**作者: 张利刚
**时间: 2008年7月17日
******************************************************************/
typedef union tag_CANAFMR
{
unsigned long value;
struct{
unsigned int AccOff :1; //验收滤波关闭位
unsigned int AccBP :1; //验收滤波旁路位
unsigned int eFCAN :1; //FULLCAN设置位
unsigned int Resv :28;
}Bits;
}_CANAFMR,*P_CANAFMR;
/******************************************************************
标准标识符单元类型定义
**作者: 张利刚
**时间: 2008年7月17日
******************************************************************/
typedef struct tag_AF_SFF_CELL
{
unsigned int UpId :11; //ID1
unsigned int UpRsv :1; //reservd
unsigned int UpDis :1; //禁能位
unsigned int UpCh :3; //控制器号
unsigned int LoId :11; //ID2
unsigned int LoRsv :1; //reservd
unsigned int LoDis :1; //禁能位
unsigned int LoCh :3; //控制器号
}_AF_SFF_CELL,*P_AF_SFF_CELL;
/******************************************************************
扩展标识符单元类型定义
******************************************************************/
typedef struct tag_AF_EFF_CELL
{
unsigned int Id :29; //ID
unsigned int Ch :3; //控制器号
}_AF_EFF_CELL,*P_AF_EFF_CELL;
/******************************************************************
FULLCAN标识符单元类型定义
******************************************************************/
typedef struct tag_AF_AUTOSTRORE_MSG
{
struct tag_Head
{
unsigned int ID :11; //ID1
unsigned int RSV5 :5; //reservd
unsigned int DLC :4; //禁能位
unsigned int RSV12 :12; //reservd
unsigned int SEM :2; //reservd
unsigned int RSV41 :4; //reservd
unsigned int RTR :1; //reservd
unsigned int FF :1; //reservd
}Head;
unsigned long DATAA;
unsigned long DATAB;
}_AF_AUTOSTORE_MSG,*P_AF_AUTOSTORE_MSG;
//Look up table 函数调用状态枚举定义
typedef enum _LUT_BUILD_ERR
{
LUT_SETTING_OK =0,
TOTAL_SIZE_TOO_LARGE =1,
FCAN_SIZE_TOO_LARGE =2,
EFF_GRP_SIZE_INVALID =3,
FCAN_STORE_SIZE_INVALID =4,
TABLE_CELL_TOO_LARGE =5,
CELL_NUM_INVALID =6,
CELL_CONTENT_INVALID =7
}LUT_BUILD_ERR;
/*
*********************************************************************************************************
**函数原型 : unsigned long AF_Build_LUT(unsigned long FCAN_ncell,
unsigned long SFF_INIV_ncell,
unsigned long SFF_GRP_ncell,
unsigned long EFF_INIV_ncell,
unsigned long SFF_GRP_ncell);
**参数说明 : 各个表的大小
**返回值 : 枚举类型定义
**说 明 : 定义并初始化LOOK UP TABLE
*********************************************************************************************************/
unsigned long AF_Build_LUT(unsigned long FCAN_nCell,
unsigned long SFF_INIV_nCell,
unsigned long SFF_GRP_nCell,
unsigned long EFF_INIV_nCell,
unsigned long EFF_GRP_nCell);
/**************************************************************************
**函数原型 : void AF_SetMode(unsigned long mode);
**参数说明 : Ch:CAN控制器号,0表示第一路CAN
**返回值 : 无
**说 明 : CAN控制器进入各种模式
*****************************************************************************/
void AF_SetMode(unsigned long mode);
/******************************************************
***函数原型:unsigned long AFInitFCANTab(_AF_SFF_CELL *pTab,unsigned long nCell);
***功能: 初始化FullCAN表格
***参数: pTab表格地址,
*** nCell表格占用CELL的个数
***
***返回值: 参看枚举类型定义
********************************************************/
unsigned long AFInitFCANTab(_AF_SFF_CELL *pTab,unsigned long nCell);
/******************************************************
***函数原型:AFInitSFFInivTab(_AF_SFF_CELL *pTab,unsigned long nCell);
***功能: 初始化独立标准帧表格
***参数: pTab表格地址,
*** nCell表格占用CELL的个数
***
***返回值: 参看枚举类型定义
********************************************************/
unsigned long AFInitSFFInivTab(_AF_SFF_CELL *pTab,unsigned long nCell);
/******************************************************
***函数原型:AFInitGrpTab(_AF_SFF_CELL *pTab,unsigned long nCell);
***功能: 初始化标准帧范围表格
***参数: pTab表格地址,
*** nCell表格占用CELL的个数
***
***返回值: 参看枚举类型定义
********************************************************/
unsigned long AFInitSFFGrpTab(_AF_SFF_CELL *pTab,unsigned long nCell);
/******************************************************
***函数原型:AFInitEFFInivTab(_AF_SFF_CELL *pTab,unsigned long nCell);
***功能: 初始化独立扩展帧标识符范围表格
***参数: pTab表格地址,
*** nCell表格占用CELL的个数
***
***返回值: 参看枚举类型定义
********************************************************/
unsigned long AFInitEFFInivTab(_AF_EFF_CELL *pTab,unsigned long nCell);
/******************************************************
***函数原型:AFInitEFFGrpTab(_AF_SFF_CELL *pTab,unsigned long nCell);
***功能: 初始化扩展帧标识符范围表格
***参数: pTab表格地址,
*** nCell表格占用CELL的个数
***
***返回值: 参看枚举类型定义
********************************************************/
unsigned long AFInitEFFGrpTab(_AF_EFF_CELL *pTab,unsigned long nCell);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -