打印

新手求解,不甚感激

[复制链接]
1222|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
旋木普|  楼主 | 2012-12-29 11:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ic, vi, ADDR, AD, DDR
关于LPC中断那一块。
VICIntSelect = 0x00;             // 所有中断通道设置为IRQ中断
VICVectCntl0 = 0x24;             // 定时器0中断通道分配最高优先级(向量控制器0)
VICVectAddr0 = (uint32)IRQ_Time0;       // 设置中断服务程序地址向量
VICIntEnable = 0x00000010;        // 使能定时器0中断
void __irq IRQ_Time0(void)
{
····················
T0IR = 0x01;                              // 清除中断标志
VICVectAddr = 0x00;                         // 通知VIC中断处理结束
}
当发生一次中断后,VICVectAddr = 0x00,为什么还能继续产生中断?

相关帖子

沙发
旋木普|  楼主 | 2012-12-29 11:31 | 只看该作者
补充一下,
void Time0Init_Interrupt(void)
{
/* Fcclk = Fosc*4 = 16MHz*4 = 64MHz     Fpclk = Fcclk/4 = 44.2368MHz/4 = 16MHz   */
T0PR = 99;               // 设置定时器0分频为100分频,得160000Hz 晶振 16M
T0MCR = 0x03;                  // 匹配通道0匹配中断并复位T0TC
T0MR0 = 160000;              // 比较值(1秒定时值)    晶振 16M
T0TCR = 0x03;                  // 启动并复位T0TC
T0TCR = 0x01;
IRQEnable();                     // IRQ中断使能
/* 设置定时器0中断IRQ */
VICIntSelect = 0x00;             // 所有中断通道设置为IRQ中断
VICVectCntl0 = 0x24;             // 定时器0中断通道分配最高优先级(向量控制器0)
VICVectAddr0 = (uint32)IRQ_Time0;       // 设置中断服务程序地址向量
VICIntEnable = 0x00000010;        // 使能定时器0中断
}
main (void)
{     
    PINSEL0 = 0X000A800A;    //PWM1-4-PWM6              
    PINSEL1 = 0X00000400;          //PWM5 P0.21 11 10 BIT
    IO0DIR = 0XFDFCEFFF;

    Time0Init_Interrupt();
   while(1);
    return 0;
}

使用特权

评论回复
板凳
dxshappy| | 2012-12-30 17:26 | 只看该作者
不知道,帮顶一下

使用特权

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

本版积分规则

0

主题

0

帖子

0

粉丝