注册 登录
查看: 452|回复: 4

有关定时器的问题?

[复制链接]
发表于 2013-9-5 08:02:56 | 显示全部楼层 |阅读模式
定时器不能用啊,一启用定时器,程序就乱了,屏蔽掉定时器之后,主函数中程序能正常运行。为什么呢? 能不能告知一下原因?  下面是代码:
定时器中代码是:
void PIT0_IRQHandler(void)
{

    ADresult = ad_once(ADC0, SE15, ADC_12bit);     //PTC1读取
    LCD_Num_8x16(site3, ADresult, GREEN, RED);    //显示结果
    PIT_Flag_Clear(PIT0);                         //清中断标志位
}

定时器初始化时:pit_init(PIT0, 300);

主函数中代码是:
while(1)
{
for(i=0; i<=10; i++)
      {
          pwmzz(150);
          delayms(140);
          pwmfz(150);
          delayms(140);
      }

        pwmzz(350);
        delayms(60);
        pwmfz(350);
        delayms(60);
}
谢谢了,急求原因 和 解决方案。 再谢!!!


回复

使用道具 举报

发表于 2013-9-8 19:42:54 | 显示全部楼层
定时时间太短了
300个 bus 时钟周期
回复 支持 反对

使用道具 举报

发表于 2013-9-8 19:43:11 | 显示全部楼层
main 函数老是被打断
回复 支持 反对

使用道具 举报

发表于 2013-9-10 11:24:35 | 显示全部楼层
pit_init(PIT0, 300);

定时 300个 bus 时钟周期,可能中断函数都没执行完,下一个中断就置位了。
所以退出中断后,又马上进入中断

回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-9-20 11:36:41 | 显示全部楼层
Admin 发表于 2013-9-10 11:24
pit_init(PIT0, 300);

定时 300个 bus 时钟周期,可能中断函数都没执行完,下一个中断就置位了。

恩,谢谢山外哥!!!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回列表 返回顶部