天嵌 ARM开发社区

 找回密码
 注册
查看: 2302|回复: 3

关于时钟中断的问题,虚心请教,等待回答

[复制链接]
lirics 发表于 2010-5-22 16:31:25 | 显示全部楼层 |阅读模式
关于时钟中断的一个问题:
目标:用Timer0定期产生一个中断,中断服务程序中实现LED1与LED2依次亮(灭)

volatile int variable0=0;
static void __irq Timer0Done(void)
{
        rTCON =rTCON&0xfe;//禁止Timer0;
        variable0++;
        if(variable0%2==0)
                Led_Display(1);
        else
                Led_Display(2);       
        rTCON =rTCON|0x01;  //启动Timer0       
}
void Test_TimerInt(void)
{
        rINTMSK = ~(BIT_TIMER0);
        pISR_TIMER0=(U32)Timer0Done;
        rTCFG0 = rTCFG0 & ~(0xffffff) | 0x00000f;  //Timer0预分频值15+1
        rTCFG1  =rTCFG1 & ~(0xffffff) | 0x000003;  //MUX0为1/16

        rTCNTB0 = 0xc167; // Timer0频率应为(MCLK/16/16)) * 0xc167
        rTCON   = rTCON & ~(0xffffff) | 0x000009; //自动加载,启动Timer0
        //rTCON =rTCON|0x01;  //启动Timer0

        while(1);       
}

下载后串口输出Pabort exception!!!
问题:1、为什么不能执行,是不是哪个寄存器设置错啦?
      2、rTCNTB0 = 0xc167; // Timer0频率应为(MCLK/16/16)) * 0xc167
        中的MCLK应该是多少?是不是400MHZ
希望牛人帮忙解答下。查了半天了,没结果,谢谢
lwy8513692 发表于 2010-8-20 17:05:53 | 显示全部楼层
发个程序给你参考一下
//--------------------------------------------------
void  Timer1_Init(void)
{
        rGPBCON=55557;
        rTCFG0=255;
        rTCFG1=0<<4;
        rTCNTB1=48828;
        rTCMPB1=0x00;
        rTCON=(1<<11)|(1<<9)|(0<<8);
        rTCON=(1<<11)|(0<<9)|(1<<8);
}

U32 flag;
void __irq Timer1_ISR(void)
{
        if(flag==0){
        rGPBDAT=0x001;
        flag=1;
        }
        else{
        rGPBDAT=0xfff;
        flag=0;
        }
        rSRCPND|=BIT_TIMER1;
        rINTPND|=BIT_TIMER1;
}

void Timer1INT_Init(void)
{
        if((rINTPND&BIT_TIMER1)){
        rSRCPND|=BIT_TIMER1;
        }
        pISR_TIMER1=(U32)Timer1_ISR;
        rINTMSK&=~(BIT_TIMER1);
}
       
       
       
       
//-------------------------------------------------------
lwy8513692 发表于 2010-8-20 17:08:18 | 显示全部楼层
2# lwy8513692
改为
void __irq Timer1_ISR(void)
{
        if(flag==0){
        Led_Display(0x1); //灯1、灯2循环点亮
        flag=1;
        }
        else{
        Led_Display(0x2);
        flag=0;
        }
        rSRCPND|=BIT_TIMER1;
        rINTPND|=BIT_TIMER1;
}
machoe 发表于 2010-8-20 18:55:47 | 显示全部楼层
请将整个工程上传上来,我帮你调一下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-5-19 02:56 , Processed in 1.046875 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表