标题:
定时器的问题
[打印本页]
作者:
ikvc-7
时间:
2007-7-6 17:30
标题:
定时器的问题
MCU里已经有监控程序,总线频率为24MHZ,程序如下:
#pragma LINK_INFO DERIVATIVE "mc9s12db128b"
unsigned int flag=0;
void Init_IO(){
DDRB=0xff;
}
void Init_ECT(){
TIOS = 0x01;
//TC0 = 18750;
TC0=65296; //中断 10微秒 = (65536-65296)/24/1000000
//TSCR2 = 0X07; //prescaler 1/128 bus clock sequence
//bit7:TOI timer overflow interrupt enable
//bits 2.1.0:timer prescaler select
//bit3:TCRE timer counter reset enable
TIE = 0X01; //tco 开中断
TSCR1= 0X80; //enable main timer
}
interrupt void Timer0_ISR(){
DisableInterrupts;
TFLG2_TOF = 1;
TFLG1 &= 0x01; // Interrupt Flag
TC0 = 65296; //从新置数
if(flag == 1000){ //0.01秒 LED变一次
PORTB = ~ PORTB;
flag=0;
}
flag++;
EnableInterrupts;
}
void main(void) {
/* put your own code here */
Init_IO();
Init_ECT();
PORTB=0xf0;
EnableInterrupts;
for(;;) {} /* wait forever */
/* please make sure that you never leave this function */
}
我认为是0.01SLED变化一次,但是实际上LED是2~3S变化一次,是不是我的计算出了问题?
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0