这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 请教一个中断的问题:

共2条 1/1 1 跳转至

请教一个中断的问题:

院士
2006-09-17 18:14:16     打赏
请教一个中断的问题:



关键词: 请教     一个     中断     问题    

院士
2006-12-22 22:43:00     打赏
2楼
问 采用的是lpc2100的工程模板,
这是原来的样例,这之前我设置了:

;设置系统模式堆栈
        MSR     CPSR_c, #0x5f
        LDR     SP, =StackUsr

        MOV     PC, R0

现在就是进不了中断,还有什么要设置的吗?谢谢能给点建议!


void __irq  IRQ_Time0(void)
{  if( (IO0SET&BEEPCON) == 0 ) IO0SET = BEEPCON;    
     else  IO0CLR = BEEPCON;                        
            
   T0IR = 0x01;                                    // 清除中断标志
   VICVectAddr = 0x00;                            // 通知VIC中断处理结束
}


/****************************************************************************
* 名称:Time0Init()
* 功能:初始化定时器0,定时时间为1S,并使能中断。
* 入口参数:无
* 出口参数:无
****************************************************************************/
void  Time0Init(void)
{   /* Fcclk = Fosc*4 = 11.0592MHz*4 = 44.2368MHz
       Fpclk = Fcclk/4 = 44.2368MHz/4 = 11.0592MHz
    */
    T0PR = 99;                                    // 设置定时器0分频为100分频,得110592Hz
    T0MCR = 0x03;                                   // 匹配通道0匹配中断并复位T0TC
    T0MR0 = 110592;                                // 比较值(1S定时值)
    T0TCR = 0x03;                                   // 启动并复位T0TC
    T0TCR = 0x01;
    
    /* 设置定时器0中断IRQ */
    VICIntSelect = 0x00;                        // 所有中断通道设置为IRQ中断
    VICVectCntl0 = 0x24;                        // 定时器0中断通道分配最高优先级(向量控制器0)
    VICVectAddr0 = (uint32)IRQ_Time0;             // 设置中断服务程序地址向量
    VICIntEnable = 0x00000010;                    // 使能定时器0中断
}


/****************************************************************************
* 名称:main()
* 功能:初始化I/O及定时器,然后等待中断。
* 说明:在STARTUP.S文件中使能IRQ中断(清零CPSR中的I位)。
****************************************************************************/
int  main(void)
{  PINSEL0 = 0x00000000;                        // 设置管脚连接GPIO   
   IO0DIR = BEEPCON;                             // 设置I/O为输出
   Time0Init();                                    // 初始化定时器0及使能中断
   while(1);                                    // 等待定时器0中断或定时器1匹配输出
   
   return(0);
}
1: 问题是不是太白痴了?都不愿回复!我是在RAM中调试的,看了FAQ里没有相关的贴子,第286问的内容看得不太明白,汇编里的程序是那样写得吗?在LPC2100的模板里没有次语句?


2: re跳线设置正确了吗?

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]