打印

关于M3062LFGPGP的中断

[复制链接]
912|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
小小周周|  楼主 | 2012-6-2 10:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序不能进入定时器中断,不知是否是设置有问题?
使用6M晶振

#include "sfr62p.h"
/*************************************************************************/
//定时器模式,中断A0
#pragma INTERRUPT/B vect 21 ms_timer_a0
void ms_timer_a0(void){
ta0 = 24000-1;  //1msec  @24MHz
if(beep_time==0)beep=1;
else beep_time--;
}
/*************************************************************************
等待20ms,直到PLL时钟稳定
*************************************************************************/
void pll_stable_20ms(void)      
{
//TA0MR:定时器A0模式寄存器
ta0mr = 0x80; //定时器模式,32分频
ta0 = 3750-1; //20ms:@6MHz, f32
ta0ic = 0x00; //Level 0
tabsr = 0x01; //TimerA0启动
while(ir_ta0ic == 0){} //延时20ms;Vcc = 5V
tabsr = 0x00;      //TimerA0停止
ir_ta0ic = 0;      //清中断标志位
}
/*************************************************************************/
//寄存器初始化
void mcu_init(void)
{
prc0=1;//允许写PRC0
prc1=1;//允许写PRC1
pm0 = 0x00;  //单芯片模式
pm1 = 0x08;
cm0 = 0x08;  //主时钟
cm1 = 0x20;  //系统时钟为主时钟
plc0 = 0x12;
pm2 = 0x00;
plc0 = 0x92; //PLL时钟启动
pll_stable_20ms(); //等待20ms,直到PLL时钟稳定
cm1 = 0x22;        //系统时钟为PLL时钟
pclkr = 0x03;
prc0=0;
prc1=0;//PRCR禁止写
adcon2 = 0x01; //AD4分频;端口P10;采样保持
adcon0 = 0x02; //软件触发;单次模式;通道2
adcon1 = 0x28; //不使用ANEX0和ANEX1;Vref;10位模式
//定时器设置
ta0ic = 0x01;  //有中断请求,LEVEL 1
ta0mr = 0x00;  //定时器模式,f1
ta0 = 24000-1;  //1msec  @24MHz
ta0s = 1;    //start counting
}

/*************************************************************************/
void main(void)
{
mcu_init(); //寄存器初始化

while(1){
}
}

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

79

帖子

0

粉丝