📄 main.c
字号:
/****************************************Copyright (c)**************************************************
***文件名称:CAN验收滤波测试程序
***作者:张利刚
***单位:中科院微系统所嘉兴分中心网络组
***时间:2008年7月17日
********************************************************************************************************/
#include "config.h"
#include "LPC2300CAN.h"
#include "AF_SET.h"
#include "uart.h"
/*
* 定义CAN帧结构体变量
*/
MessageDetail MessageDetailT; // 定义发送帧
MessageDetail MessageCAN0; // 定义CAN0通道帧接收帧
MessageDetail MessageCAN1; // 定义CAN1通道帧接收帧
char * str1="SFF INITAIL OK!";
char * str2="EFF INITAIL OK!";
char * str3="AFMR register INITAIL OK!";
char * str4="CPU working is OK!!";
/*********************************************************************************************************
** 函数名称: IRQ_Timer0
** 函数功能: 定时器0中断服务程序,取反蜂鸣器控制口。
** 入口参数: 无
** 出口参数: 无
*********************************************************************************************************/
void __irq IRQ_Timer0(void)
{
UART0_SendStr(str4);
DISP_CHANGEROW();
T0IR = 0x01; // 清除中断标志
VICVectAddr = 0x00; // 通知VIC中断处理结束
}
/**************************************************************************************************
******说明:1、所有程序的启动代码要根据LPC2300工程模板编写程序
****** 2、初始化的时候一定要注意开总中断的位置
******
*****************************************************************************************************/
int main (void)
{
_AF_SFF_CELL IndvSFFTab[] = {{0xbb,0,0,0,0xaa,0,0,0},{0xdd,0,0,0,0xcc,0,0,0},{0xff,0,0,1,0xee,0,0,0}};
_AF_EFF_CELL IndvEFFTab[] = {{0x123,0},{0x456,0},{0x789,0},{0xabc,0}};
//初始化串口
UART0_Init();
U0IER |= 0x01;
INI_LED();
/* 定时器0初始化 */
T0TC = 0; // 定时器设置为0
T0PR = 0; // 时钟不分频
T0MCR = 0x03; // 设置T0MR0匹配后复位T0TC,并产生中断标志
T0MR0 = Fpclk; // 0.5秒钟定时
T0TCR = 0x01; // 启动定时器
/* 设置定时器0中断IRQ */
VICIntSelect = 0x00; // 所有中断通道设置为IRQ中断
VICVectPri4 = 00; // 设置定时器0中断最高优先级
VICVectAddr4 = (uint32)IRQ_Timer0; // 设置中断服务程序地址
VICIntEnable = 1 << 0x04; // 使能定时器0中断
//初始化can
//CAN_Init(0,BPS_100K); // 初始化第1路CAN,波特率为100K
if((CAN_Init(0,BPS_100K) & 0x01) == 1)
{
UART0_SendStr(str3);
DISP_CHANGEROW();
}
/* 打开IRQ中断 */
IRQEnable(); // IRQ中断使能
AF_Build_LUT(0,10,0,10,0); //建立look up 表格
//初始化表格
//AFInitSFFInivTab(IndvSFFTab,sizeof(IndvSFFTab)/sizeof(_AF_SFF_CELL));
if(AFInitSFFInivTab(IndvSFFTab,sizeof(IndvSFFTab)/sizeof(_AF_SFF_CELL)) == 0)
UART0_SendStr(str1);
DISP_CHANGEROW();
//AFInitEFFInivTab(IndvEFFTab,sizeof(IndvEFFTab)/sizeof(_AF_EFF_CELL));
if(AFInitEFFInivTab(IndvEFFTab,sizeof(IndvEFFTab)/sizeof(_AF_EFF_CELL)) == 0)
UART0_SendStr(str2);
DISP_CHANGEROW();
/* 使用CAN1 通道时 注意硬件是否连接,通道是否已被初始化 */
while(1)
{
;
//OPEN_CLOSE_LED(3);// 中断处理:CANIntPrg()函数中完成
}
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -