这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 我这个A/D中断进入中断服务子程序后却回不到主程序了!

共2条 1/1 1 跳转至

我这个A/D中断进入中断服务子程序后却回不到主程序了!

院士
2006-09-17 18:14:16     打赏
我这个A/D中断进入中断服务子程序后却回不到主程序了!



关键词: 这个     中断     进入     服务     子程序     却回     不到     主程序    

院士
2006-12-22 22:43:00     打赏
2楼
1: 我这个A/D中断进入中断服务子程序后却回不到主程序了!我在初始化的时候将LED灯点亮,在中断服务程序中写了一条将LED灯熄灭的程序,可以实现。我又在主任务中写了一条将LED点亮的程序,可是灯在熄灭后再也不亮了。请高手指教,不胜感激!
中断服务子程序:
   void __irq  ADC_Exception(void)
{
   OS_ENTER_CRITICAL();
   ADC_Data=ADDR;   //读取ADC转换结果,清中断请求???
   ADDR=ADDR&0x00000000;//清中断远???
    IO2SET=0xf0000000;   ///熄灭
    VICVectAddr = 0;       //interrupt close 通知中断控制器中断结束
    OS_EXIT_CRITICAL();
}问号表示我对清中断请求是否正确不太清楚
主任务:
void Task0    (void *pdata)
{   
   pdata = pdata;
   TargetInit ();
    PINSEL0=0x00000000; //设置p0.0-p0.31GPIO
    IO2DIR=0xf0000000;      //配制LED控制I/O方向,
    IO2SET=0xf0000000;
    IO2CLR=0x20000000;        //点亮2号LED灯
    OSTimeDly(OS_TICKS_PER_SEC/2);
    PINSEL1=0x01400000;  // AIN0,AIN1工作

   ADCR=(1<<0)                |   //前2个通道全选:AIN0-AIN2
        (1<<1)                |
        (1<<2)                |
        (1<<3)                |  
        ((Fpclk/100-1)<<8)    |   //转换时钟为1MHZ更高的位,循环转换
        (1<<16)               |   //突发模式   
        (0<<17)               |   //11CLOCK转换
        (1<<21)               |   //正常工作模式
        (0<<22)               |   //正常工作模式
        (0<<23)               |
        (1<<24)               ;
                   
       OSTimeDly(OS_TICKS_PER_SEC/2);

       for(;;)
     {
         IO2CLR=0x20000000;   ///点亮(此语句得不到实现)

         OSTimeDly(OS_TICKS_PER_SEC/2);
          }
}         
              
    
     
   
          

共2条 1/1 1 跳转至

回复

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