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

共2条 1/1 1 跳转至

uCOS 在uCOS下开中断的问题!

院士
2006-09-17 18:14:16     打赏
uCOS 在uCOS下开中断的问题!



关键词: 下开     中断     问题    

院士
2006-12-22 22:43:00     打赏
2楼

uCOS下开中断步骤如下:
1、在IQR.S添加语句:IRQ_Eint1_Handler HANDLER IRQ_Eint1
2.在主函数作了生明: extern void IRQ_Eint1_Handler(void)
3.定义中断服务函数:
void  IRQ_Eint1(void)
{  
  unsigned char i, count0;

  count0=0;
  for(i=0;i<10;i++)
     if(EXTINT & 0X02 !=1)count0++;
     if(count0>6)
       Lcoding+=1;
   EXTINT=0X02;//清除EINT1中断标志
   VICVectAddr=0x00;
}
4.在uCOS中的任务设置:
void  TaskC(void *pdata)
{
    pdata=pdata;    
    PINSEL0=PINSEL0 & 0x0fffffff;
    PINSEL0=PINSEL0 | 0x20000000;//P0.14连接EINT1,P0.15连接GPIO
    IODIR = IODIR & 0xffff7fff;  //P0.15设置为输入的方式     
    VICIntSelect=0x00000000;
    VICVectCntl0=0x2F;
    VICVectAddr1=(uint32)IRQ_Eint1_Handler;
    VICIntEnable=0x00008000;  
    EXTMODE=0X02; //EINT1使用边沿触发
    EXTPOLAR =0x00; //EINT1下降沿有效   
    EXTINT = 0x02;
  for (;;)  {                              
          
           OSTimeDly(100);               /* Delay 100 clock tick   */
        }
  现在的中断服务不好用,不知是哪里有问题,起动时其它任务还是正常的,过一会就死掉了,可能是进入了中断.请大帮忙看一下,谢谢! 1: 是不是芯片本身有问题下面的这两条语句,书上没有实例作介绍,问题会不会出在里:  

EXTMODE=0X02; //EINT1使用边沿触发
    EXTPOLAR =0x00; //EINT1下降沿有效   

共2条 1/1 1 跳转至

回复

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