Board logo

标题: 定时器的问题 [打印本页]

作者: 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