首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

PIT定时中断,问题请教

PIT定时中断,问题请教

我刚刚接触freesale的单片机,遇到问题了,还烦请大家帮忙分析一下

我原本想设置1ms中断,BusClock是16M, 函数在下面,但是出来的结果不是1ms,
而是1.25us,可是我不论怎么改变PITLD0和PITMTLD0的值,一直就是1.25us,
请大家帮忙看看,谢谢!!

初始化函数如下:
void initPIT(void)
{
    PITCFLMT_PITE=0;
    PITCE_PCE0=1;
    PITMTLD0=39;
    PITLD0=399;
    PITINTE_PINTE0=1;
    PITCFLMT_PITE=1;
}

中断函数如下

#pragma CODE_SEG NON_BANKED
void interrupt 66 PIT0(void)
{
       PORTB =~PORTB;
       PITTF_PTF0=1;
}




本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yangyong1011/archive/2009/05/02/4144236.aspx
我验证了一下,可以实现1ms的定时啊,如果说有不完善的地方就是你的初始化PIT时最好加上PITTF清标志位,别的没啥大毛病。
返回列表