智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1583|回复: 1
打印 上一主题 下一主题

高手给我指点迷津

[复制链接]

22

主题

124

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2257
QQ
威望
614
贡献
1505
兑换币
18
注册时间
2011-9-20
在线时间
69 小时
跳转到指定楼层
1#
发表于 2011-11-12 15:19:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#define uint  unsigned int
#define uchar unsigned char
#define image_X_limit   84        //pilxe
#define image_Y_limit   48
#define VolPoint        70
//unsigned char tab[]={"0x00;0x03;0x05;0x11;0x33;0xde;0xfe;0xad;0xdd;0x00"};
uint  image_X=0;               //AD
uint  image_Y=0;
uint  Y_FLAG=0;
uint  temp = 0;  
uchar  image[image_Y_limit][image_X_limit]=0;
uchar  line_temp[image_X_limit];
void line_get_AD(void)
    {
                  PORTE_PE2=1;  //AD使能
           
               for(image_X=0;image_X<image_X_limit;image_X++)
        {
          line_temp[image_X]=PORTA;
          image[image_Y][image_X]= line_temp[image_X];  
        }  
        image_Y++;      
    }
void transmit(uchar transmit_data) //SCI 发送
    {
      while(SCI0SR1_TC==0);
      SCI0DRL=transmit_data;  
    }
   
   
void transmit_image(void)  //发送图像到串口
    {
      //uint i,j;
      for(image_Y=0;image_Y<=image_Y_limit;image_Y++)
        {
          for(image_X=0;image_X<=image_X_limit;image_X++)
            {
                if(image[image_Y][image_X]>VolPoint)
                image[image_Y][image_X]=0x00;
                else   image[image_Y][image_X]=0x11;
                transmit(image[image_Y][image_X]);
            }
            
        }
    }
   

void main(void) {
   
    uint i,j;
    EnableInterrupts;
    MCUInit();
  for(;;) {      
     if(temp == 1){
      //if(1){
        transmit_image();
        #if LCD_DEBUG
          LCDClear();
          for(j = 0 ; j < image_X_limit; j++){    //48
            for(i = 0; i < image_Y_limit; i++){   //84
              if(image[i][j]>VolPoint){
                LCDPixel(i, j, PIXEL_OFF);   //该点不显示
              }else{
                LCDPixel(i, j, PIXEL_ON);   //显示该点
              }
            }
          }
            LCDUpdate();
        #endif
        }
        EnableInterrupts;  //允许中断
   
  }
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED  //&Ouml;&cedil;&Ecirc;&frac34;&cedil;&Atilde;&sup3;&Igrave;&ETH;ò&Ocirc;&Uacute;&sup2;&raquo;·&Ouml;&Ograve;&sup3;&Ccedil;&oslash;  行中断采集
void interrupt 24 V_ISR(void)
{
  PIFJ_PIFJ0=1;   // 清楚标志位
  Y_FLAG++;
  if((20<Y_FLAG<310)&&Y_FLAG%6)  //各六行采集
  line_get_AD();
// else temp = 1;  
         
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED   //场中断处理
  
void interrupt 6 H_ISR(void)
{   
    DisableInterrupts;
    Y_FLAG = 0;
    temp = 1;
    image_Y=0;
    image_X=0;
   
    //LCDPlay();
   
}
能采集到数据 发到串口显示 不是设置的00  11  显示的还是乱七八糟的 显示到5110也没有 什么效果要么黑一片 要么不显 是不是我的采集方法不对
求解决!!

22

主题

124

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2257
QQ
威望
614
贡献
1505
兑换币
18
注册时间
2011-9-20
在线时间
69 小时
2#
 楼主| 发表于 2011-11-12 15:24:50 | 只看该作者
行中断 PJ7   场中断IRQ    补充一下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-27 19:57 , Processed in 0.137877 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表