急急急。。。知道的帮帮忙
第1个回答 2013-05-24
//初始化主函数
void init_main()
{
// RCAP2H=(0xFFFF-50000)/256;
// RCAP2L=(0xFFFF-50000)%256; //24MHz晶振下定时25ms,自动重装
TH2=RCAP2H;
TL2=RCAP2L; //定时器2赋初值
T2CON=0; //配置定时器2控制寄存器,这里其实不用配置,T2CON上电默认就是0,这里赋值只是为了演示这个寄存器的配置
T2MOD=0; //配置定时器2工作模式寄存器,这里其实不用配置,T2MOD上电默认就是0,这里赋值只是为了演示这个寄存器的配置
IE=0xA0; //1010 0000开总中断,开外定时器2中断,可按位操作:EA=1; ET2=1;
TR2=1; //启动定时器2
}
void timer2() interrupt 5
{
//!!!注意!!! 定时器2必须由软件对溢出标志位清零,硬件不能清零,这里与定时器0和定时器1不同!!!
TF2=0;
}追问
void init_main()
{
// RCAP2H=(0xFFFF-50000)/256;
// RCAP2L=(0xFFFF-50000)%256; //24MHz晶振下定时25ms,自动重装
TH2=RCAP2H;
TL2=RCAP2L; //定时器2赋初值
T2CON=0; //配置定时器2控制寄存器,这里其实不用配置,T2CON上电默认就是0,这里赋值只是为了演示这个寄存器的配置
T2MOD=0; //配置定时器2工作模式寄存器,这里其实不用配置,T2MOD上电默认就是0,这里赋值只是为了演示这个寄存器的配置
IE=0xA0; //1010 0000开总中断,开外定时器2中断,可按位操作:EA=1; ET2=1;
TR2=1; //启动定时器2
}
void timer2() interrupt 5
{
//!!!注意!!! 定时器2必须由软件对溢出标志位清零,硬件不能清零,这里与定时器0和定时器1不同!!!
TF2=0;
}追问
那我是12mhz的晶振,定0.5ms的时间可以吗?还有就是这个TF2是必须有的吧
嗯,谢谢
本回答被提问者采纳