用错了很多东西啊,中断标志位是写1清0的,中断号也错了,寄存器赋值顺序估计也会出问题,我今天下午刚配置的程序,给你参考下:
//===========================================
// 设置PIT函数
//总线时钟为40MHZ,定时器溢出频率f = (9+1)*(99+1)/ 40M = 40Khz
//===========================================
void Set_PIT(void)
{
PITCE = 0X01; // PIT0通道使能
PITMUX = 0X00; // 所有都接micro time base 0
PITINTE = 0X01; // PIT0通道中断使能
PITMTLD0 = 9; //
PITLD0 = 9;
PITCFLMT |= 0X80; // 使能PIT
}
// ===========================
// PIT中断程序
// ===========================
#pragma CODE_SEG NON_BANKED // 中断程序需写在非分页区
void interrupt 66 PIT_INT(void)
{
PITTF_PTF0 = 1; // 清零PIT0中断标志
// 其余代码
} |