智能车制作

标题: 弱弱的问下~请高手帮忙下~我的AD中断进入后就不再进入了~ [打印本页]

作者: fengtian123    时间: 2011-4-23 12:39
标题: 弱弱的问下~请高手帮忙下~我的AD中断进入后就不再进入了~
下面是我们的MAIN函数和行中断,场中断,还有AD中断~ 图像采集程序~
void main(void) {
  /* put your own code here */                                          
    sci ();
    pll();
    ect();
    ad();
EnableInterrupts;
     TFLG1=0xff;
for(;;){
  TIE_C1I=1;
    if(TFLG1_C1F){
      delay(1504);
        TIE_C0I=1;
        shuchuzifu('+');
    }
  } /* loop forever */
  /* please make sure that you never leave main */
}
    #pragma CODE_SEG NON_BANKED
        void interrupt 8 hangzhongduan() {
                    shuchuzifu('@');
           TFLG1_C0F=1;//0通道中断标志
            if(ourhang==caijidehangshu[n]){
                  delay(6);
                  ATD0CTL5=0x30;
                       shuchuzifu('*');//测试标志
                    n++;
            }
            ourhang++;
            TIE_C0I = 1;   
            
              
           }
        void interrupt 9 changzhongduan(){
                shuchuzifu('&'); //测试标志
         TFLG1_C1F=1;//1通道中断标志
         
          if(row>=40) {
          for(caijihang = 0; caijihang < 40; caijihang++ )
         {                              
        for( caijilie = 0; caijilie < 45; caijilie++ )
            {
            if(get_n[caijihang][caijilie] > 27)               
                shuchuzifu('1');
            else           
                shuchuzifu('0');
            }
        // shuchuzifu('&');//测试标志
        shuchuzifu('\n');
        }            
                      }
           row=0;//行数初始化
          AdCounter=0;  //列数初始化
          n=0;
                TIE_C1I = 1;         
       }
       void interrupt 22 ATD0_ISR(void){      //ATD 中断处理
    shuchuzifu('A');
   ADtemp[0]=ATD0DR0L;
   ADtemp[1]=ATD0DR1L;
   ADtemp[2]=ATD0DR2L;
   ADtemp[3]=ATD0DR3L;
   ADtemp[4]=ATD0DR4L;
   ADtemp[5]=ATD0DR5L;
   ADtemp[6]=ATD0DR6L;
   ADtemp[7]=ATD0DR7L;
   if(AdCounter<6){
     get_n[row][AdCounter*8]=ADtemp[0];  //保存结果
     get_n[row][AdCounter*8+1]=ADtemp[1];
     get_n[row][AdCounter*8+2]=ADtemp[2];
     get_n[row][AdCounter*8+3]=ADtemp[3];  
     get_n[row][AdCounter*8+4]=ADtemp[4];
     get_n[row][AdCounter*8+5]=ADtemp[5];
     get_n[row][AdCounter*8+6]=ADtemp[6];
     get_n[row][AdCounter*8+7]=ADtemp[7];
     AdCounter++;
     if(AdCounter==6){                     //如果一行完成            
               
       //makerecord(ROW_FINISH);
         shuchuzifu('R');//测试标志
        row++;                        //行计数器加一
   ATD0CTL5=0x00;         //停止扫描
       if(row==40){                        //如果一帧完成            
            shuchuzifu('$');      //测试标志
         TIE=0x02;                         //关闭行同步信号中断
       }
     }
   }
    else{
     ATD0DR0L=ATD0DR0L;
   }
}      


请求大家帮帮忙~

用串口采集后发现如下:
&@*@*@A@A@A@A@A@AR@A@@@@@@@@@@@@@@@@@*@A@A@A@A@A@A@A@A@A@A@*@A@A@A@A@A@A@A@A@A@A@A@*@A@A@A@A@A@A@A@A@A@A@*@A@A@A@A@A@A@A@A@A@A@*@A@A@A@A@A@A@A@A@A@*@A@A@A@A@A@A@A@A@A@*@A@A@A@A@A@A@A@A@*@A@A@A@A@A@A@A@A@A@*@A@A@A@A@A@A@A@*@A@A@A@A@A@A@A@A@*@A@A@A@A@A@A@A@*@A@A@A@A@A@A@A@*@A@A@A@A@A@A@*@A@A@A@A@A@A@*@A@A@A@A@A@A@*@A@A@A@A@A@A@*@A@A@A@A@A@*@A@A@A@A@A@*@A@A@A@@A@*@A@A@A@A@A@*@A@A@A@A@*@A@A@A@A@*@A@A@A@A@*@A@A@A@A@*@A@A@A@A@*@A@A@A@*@A@A@A@*@A@A@A@*@A@A@A@*@A@A@
作者: fengtian123    时间: 2011-4-23 14:11
高手进来看看撒~
作者: laoniuxxj    时间: 2011-4-23 16:16
我还不大懂。。。
作者: fengtian123    时间: 2011-4-23 18:02
回复 3# laoniuxxj


    总算有人回答了~谢谢
作者: 姜伟伟    时间: 2011-4-25 18:08
我也遇到了类似的问题,进入中断后,采集不了数据,且行计数和场计数都有变化,但就没有数据,无限苦恼中……
作者: fengtian123    时间: 2011-4-26 20:30
回复 5# 姜伟伟

现在我们用双数组来采集~效果不错哦~您也可以试试哈~




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2