N76E003定时器TIM1不知道为啥倍频了,找了半天没找到原因,求教下,谢谢了
下面是正文:设置P0口为推挽输出
定时器使用系统时钟,不做分频,测试过下同输出时钟为16.4M
设置TH+TL为16000,结果发现,居然500us进入中断1次,通过设置IO口翻转,示波器观察得到
中断,只做IO口翻转
void Timer1_ISR (void) interrupt 3 //interrupt address is 0x001B
{
if(P0==0xFF)P0=0;
else P0=0xFF;
}
P0M2=0xFF; //设置相应端口
P1M2=0x00;
P3M2=0x00;
P0M1=0x00;
P1M1=0;
P3M1=0;
TIMER0_MODE0_ENABLE; //定时器0设置为16位定时器模式
TIMER1_MODE0_ENABLE; //定时器1设置为16位定时器模式
clr_T0M; //清理定时器0
clr_T1M; //清理定时器1
TH0 = 0x03; //定时器0中断为50us,16*50=0x0320
TL0 = 0x20;
TH1 = 0x3E; //定时器1中断为1ms,16*1000=0x3E80
TL1 = 0x80;
CKCON|=0x18;
set_EADC; //开启ADC中断允许位
set_ET0; //允许定时器0中断
set_ET1; //允许定时器1中断
set_EPI; //启动端口的中断
EIE1|=1; //开启串口1中断
set_EA; //允许启动中断
set_TR1; //定时器1开启,系统心跳
while(1);
|