首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

定时器的问题

定时器的问题

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变化一次,是不是我的计算出了问题?
返回列表