📄 timer0.c
字号:
#include "main.h"
volatile unsigned int TimeCount[5] = {0};
volatile unsigned int Set_Count = 0,setcount = 0;
void PIT_init(void)//定时中断初始化函数 5MS定时中断设置
{
PITCFLMT_PITE=0; //定时中断通道0关
PITCE_PCE0=1;//定时器通道0使能
PITMTLD0=8-1;//8位定时器初值设定,8分频,在64MHzBusClock下,为8MHz。即0.125us
PITLD0=100-1;//16位定时器初值设定。PITTIME*0.125uS 即12.5uS中断一次
PITINTE_PINTE0=1;//定时器中断通道0中断使能
PITCFLMT_PITE=1;//定时器通道0使能
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED //指示该程序在不分页区
void interrupt 66 PIT0(void)
{
unsigned int i = 0;
static unsigned char flage = 1;
static unsigned int Count = 0,speedlow = 0;
for(i=0;i<5;i++)
{
if(TimeCount[i]>0) TimeCount[i]--;
}
if(TimeCount[0]==0) { kalman_update();TimeCount[0] = 800;} // //采样周期 800*12.5us = 10ms
PITTF_PTF0=1;//清中断标志位
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -