📄 timer.h
字号:
unsigned char temp=0;
//**************************定时器初始化函数OK***********************************
static void Init_TBM(void) //时基定时器
{
TBCR_TBIE =1; //2 基础定时器中断使能
TBCR_TACK =1; //3 TBM中断标志清除
TBCR_TBR0 =1;
TBCR_TBR1 =1;
TBCR_TBR2 =0; //分频系数16384,4.096ms
/* TBR2 TBR1 TBR0 Divider Tap
TMBCLKSEL
0 1
0 0 0 32,768 4,194,304
0 0 1 8192 1,048,576
0 1 0 2048 262144
0 1 1 128 16,384
1 0 0 64 8192
1 0 1 32 4096
1 1 0 16 2048
1 1 1 8 1024
*/
TBCR_TBIF =1; //7 中断标志
TBCR_TBON =1; //0 启动定时器
//2E 0010 1110
}
void interrupt 17 INT_TBM(void)
{
//系统指示灯
LED_count++;
if(LED_count==122)
{
LED_count=0;
LED=!LED;
Dog_MC33984();
Test_MC33984();
}
//喂狗、开关量检测
dog_count++;
if(dog_count==27) //110ms
{
dog_count=0;
Dog_MC33389(); //MC33389喂狗
// Dog_MC33984(); //MC33984喂狗
RD33993(0x00,0x00,0x00);//MC33993状态检测
CAN_CMD0.Byte=SP_status.Byte;
CAN_CMD1.Byte=SGH_status.Byte;
CAN_CMD2.Byte=SGL_status.Byte;
// MC33993_FLAG=1; //检测完成标志
}
//MC33984端口刷新
out_count++;
if(out_count==11)
{
out_count=0;
Out_MC33984(); //
CAN_CMD7.Byte=SPI_33984(0,0x85);
CAN_CMD7.Byte=SPI_33984(0,0x85);
}
can_comm_count++;
if(can_comm_count==12)
{
can_comm_count=0;
CAN_CMD();
}
TBCR_TACK =1; //清除中断标志
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -