⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timer0.c

📁 卡尔曼滤波(非矩阵)参考程序
💻 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 + -