智能车制作

标题: 采集回来的图像成这样了,好累啊,怎么办 [打印本页]

作者: jimmy0087    时间: 2013-4-8 16:51
标题: 采集回来的图像成这样了,好累啊,怎么办
//=======================图像获得===========================================
//=======================行中断================================================
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 8 RowInterrupt(void)
{
   unsigned int PICKLINE[33]={32,36,40,44,48,52,56,60,
                           64,68,72,76,80,84,88,92,
                           96,100,104,108,112,116,122,126,
                           130,134,138,142,146,150,154,158,
                           162};
   register char i;
   TFLG1_C0F=1;                         //行中断可用
   if(ENLINE==1)     //如果 行场中断均可用   二值化完成
   {
     if(COUNT==PICKLINE[H_WRITE])  //如果COUNTER为可取的行数
       {  
        
           _asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;                        //延时
           _asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;
           _asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;
           _asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;
           _asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;
           _asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;                        //延时
           _asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;
           _asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;
           _asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;
           _asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;
           _asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;                        //延时
         
           
          for(L_WRITE=0;L_WRITE<LINE;L_WRITE++)
         {   
           
           FIRSTBUFF[H_WRITE][L_WRITE]=PORTA;  //读取PA的灰度值
           _asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;
           _asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;_asm NOP;  //取第下一个点时中间的延时
                    
         }
        H_WRITE++;                                //行数加1
       }
      COUNT++;                                      //记录中断扫描行的变量+1
      }
}   
/******************************场中断*****************************************/
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 11 LineInterrupt(void)
{  
   
   TFLG1_C3F=1;                                      //场中断可用
   
    if(ENSCENE==1)                                    //如果场中断可用
     {
      ENLINE=1;                                       //行中断使能
      COUNT=0;                                      //中断扫描行置0
      H_WRITE=0;                                  //BUFF的行置0
      ENSCENE=0;                                   //BUFF的行置0
     }
     
}  
   



求大神指导,采集程序应该没错啊



void SCI_putchar(char ch)      
{
   while(!(SCI0SR1&0X80));    //检查发送寄存器空标志TDRE
   while(!(SCI0SR1&0X40));    //检查发送完成标志TC
                              //=0正在发送  =1没有发送
   SCI0DRL=ch;  
}
void Process()
{
  
  unsigned char i,j;
  SCI_putchar(0xff);
  for(i=0;i<ROW;i++)
    {   
   
    for(j=0;j<LINE;j++)
      {
       //if(BUFF[i][j]==0||j== Line_Center[i])
        
        SCI_putchar(FIRSTBUFF[i][j]) ;
      }
              
          SCI_putchar('\r');
          SCI_putchar('\n');
    }
}



串口程序有问题吗?

作者: gaolou1991    时间: 2013-4-8 17:13
1:你的上位机的参数是不是设置错了?
2:在发送数据的时候尽量把中断关上。
3:中断程序写完不是还要加上“
#pragma CODE_SEG DEFAULT”的吗?
作者: jimmy0087    时间: 2013-4-8 17:22
gaolou1991 发表于 2013-4-8 17:13
1:你的上位机的参数是不是设置错了?
2:在发送数据的时候尽量把中断关上。
3:中断程序写完不是还要加上 ...

还是不行,上位机直接选的灰度图像显示,我在code上查我的数组变量,数据时没问题的,我怀疑是不是串口发送数据的有问题
作者: gaolou1991    时间: 2013-4-9 11:04
摄像头的数据线有没有接反??




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