|
本帖最后由 Lu.Shi 于 2013-5-3 14:47 编辑
刚学习PIC单片机,想使用Timer4做一个定时器,定时1s,但是按照Timer0的思路做不对,然后我就读Datasheet,但是看Datasheet后知道使用定时器要和PR4匹配才中断,但是程序里面的中断标志位TMR4IF一直为1,进不了中断里面,所以请教一下Timer4做一个定时器怎样使用,下面是我的程序初始化,哪有问题请知情人提出来,谢谢!
外部晶振:40MHz。
#include"pic18.h"
void main(void)
{
TMR4IF=0; //中断标志初始化
TMR4IP=0; //中断优先级低优先级
T4CON&=0x04; //无预分频,无后分频
TMR4=0; //Timer4的计数初值
PR4=0xED; //设置与TMR4匹配值,还有这部分不知道要初值赋多少,打算先能产生中断,然后软件仿真之后才确定初始值
GIE=1; //使能中断
TMR4IE=1; //使能Timer4
TMR4ON=1; //启动Timer4
while(1)
{
;
}
}
void interrupt Timer4()
{
if(TMR4IF)
{
TMR4IF=0;
TMR4=0;
PR4=0xED;
/*执行中断内容*/
}
}
|
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|