打印
[ZLG-ARM]

T0就是不进入中断!

[复制链接]
986|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xwhua188|  楼主 | 2007-6-11 16:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位大师.
我用KEILARM的RV编译通过了,但是下载到板上以后怎么样都不会进入中断.
急,苦等!请各位大侠帮我分析可能是哪里出了问题.
相关程序如下:
__irq void Timer0_irq(void)
{
     


    Blink = ~Blink;
         SpeakerOn();
    T0IR = 0x01;                /* 清除中断标志                                    */
      VICVectAddr = 0x00;        // 通知VIC中断处理结束    
}

void VicIntSetup(void)
{
    /* 设置定时器0中断IRQ */
    VICIntSelect = 0x00;                /* 所有中断通道设置为IRQ中断            */
    VICVectCntl0 = 0x20 | 0x04;            /* 设置定时器0中断通道分配最高优先级    */
    VICVectAddr0 = (unsigned long int)Timer0_irq;    /* 设置中断服务程序地址                    */
    VICIntEnable = 1 << 0x04;            /* 使能定时器0中断                        */
}

__inline void enable_IRQ(void)
{
int tmp;
__asm
{
MRS tmp, CPSR
BIC tmp, tmp, #0x80
MSR CPSR_c, tmp
}
}

void Timer0Init(void)
{
    /* 定时器0初始化 */
    T0TC   = 0;            /* 定时器设置为0                                        */
    T0PR   = 0;            /* 时钟不分频                                            */
    T0MCR  = 0x03;        /* 设置T0MR0匹配后复位T0TC,并产生中断标志                */
    T0MR0  = Fpclk / 2;    /* 0.5秒钟定时                                            */
    T0TCR  = 0x01;        /* 启动定时器                                            */
}

相关帖子

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

本版积分规则

18

主题

91

帖子

0

粉丝