智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 3241|回复: 14
打印 上一主题 下一主题

@野火

[复制链接]

3

主题

20

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
367
威望
213
贡献
76
兑换币
81
注册时间
2012-9-12
在线时间
39 小时
毕业学校
舒城中学
跳转到指定楼层
1#
发表于 2013-4-20 20:43:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
程序还是下载不进去野火的芯片,请野火技术顾问帮忙一下

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
2#
发表于 2013-4-24 16:38:45 | 只看该作者
你好,加Q:753258889 ,方便寻找问题

先对k60进行解锁,用jlink 的jtag 模式下载
回复 支持 反对

使用道具 举报

32

主题

387

帖子

1

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4627
威望
2290
贡献
1181
兑换币
924
注册时间
2012-2-13
在线时间
578 小时
3#
发表于 2013-4-27 00:33:40 | 只看该作者
野火 发表于 2013-4-24 16:38
你好,加Q:753258889 ,方便寻找问题

先对k60进行解锁,用jlink 的jtag 模式下载

你好,我用最原始的综合分离代码中的代码采集图像,然后解压发送串口,可是图像上下左右都跳动,原因未知,代码如下,帮忙看一下,不适用行中断的那个。
#include "common.h"
#include "include.h"
u8 img_bin_buff[CAMERA_SIZE];
u8 IMAGE[60][80];
void main(void)
{
Site_type site={0,0};      //显示图像左上角位置
Size_type size={80,60};      //显示区域图像大小
        uart_init(UART1,115200);
        LCD_Init(RED);                 //初始化,设置背景为白色
Ov7725_Init((u8 *)img_bin_buff); //img_bin_buff 新的图像指针                          //摄像头初始化
//pit_init_ms(PIT0,10000);     //10秒触发一次中断
//LED_init();
  gpio_init(PORTA,4,GPO,1);
        while(1)
{     
                int i,j,m=0;
  //disable_irq(PIT0+ 68);                  //关闭PIT中断,避免影响图像采集
  ov7725_get_img();
                //LCD_Img_Binary(site,size,(u16 *)(img_bin_buff));
                PTA4_OUT=0;
                //解压  
                for(i=0;i<60;i++)
                {
                  for(j=0;j<80;j+=8)
                  {
                   IMAGE[j+7]=(img_bin_buff[m]&(0x01<<0))>>0;
                   IMAGE[j+6]=(img_bin_buff[m]&(0x01<<1))>>1;
                   IMAGE[j+5]=(img_bin_buff[m]&(0x01<<2))>>2;
                   IMAGE[j+4]=(img_bin_buff[m]&(0x01<<3))>>3;
                   IMAGE[j+3]=(img_bin_buff[m]&(0x01<<4))>>4;
                   IMAGE[j+2]=(img_bin_buff[m]&(0x01<<5))>>5;
                   IMAGE[j+1]=(img_bin_buff[m]&(0x01<<6))>>6;
                   IMAGE[j]=(img_bin_buff[m]&(0x01<<7))>>7;
                   m++;                 
                  }
                }
                m=0;
      uart_putchar(UART1,0);
      uart_putchar(UART1,255);
      uart_putchar(UART1,1);
      uart_putchar(UART1,0);
      
      for(i=0;i<60;i++)
      {
        for(j=0;j<80;j++)
        {
          if(IMAGE[j]==0)
         uart_putchar(UART1,160);
         else
            uart_putchar(UART1,50);
        }
      }
       PTA4_OUT=1;              
               
        //由于PIT中断会显示LCD,必须保证开中断后,main函数里不能有LCD显示,不然显示错乱
        //enable_irq(PIT0+ 68);           //允许PIT中断,避免影响图像采集
}
回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
4#
发表于 2013-4-27 07:39:02 | 只看该作者
mdgs 发表于 2013-4-27 00:33
你好,我用最原始的综合分离代码中的代码采集图像,然后解压发送串口,可是图像上下左右都跳动,原因未知 ...

你好,原先提供的那个代码,抗干扰比较弱,请下载我们q群提供的新版代码
另外,我们也提供解压图像的函数,可在q群下载
回复 支持 反对

使用道具 举报

32

主题

387

帖子

1

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4627
威望
2290
贡献
1181
兑换币
924
注册时间
2012-2-13
在线时间
578 小时
5#
发表于 2013-4-27 16:07:13 | 只看该作者

RE: @野火

野火 发表于 2013-4-27 07:39
你好,原先提供的那个代码,抗干扰比较弱,请下载我们q群提供的新版代码
另外,我们也提供解压图像的函数 ...

内容 好的,我下课后再试试,谢谢火哥指教。
回复 支持 反对

使用道具 举报

32

主题

387

帖子

1

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4627
威望
2290
贡献
1181
兑换币
924
注册时间
2012-2-13
在线时间
578 小时
6#
发表于 2013-4-27 22:25:04 | 只看该作者
野火 发表于 2013-4-27 07:39
你好,原先提供的那个代码,抗干扰比较弱,请下载我们q群提供的新版代码
另外,我们也提供解压图像的函数 ...

火哥,再问一句,解压图像的函数在那个头文件里?
回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
7#
发表于 2013-4-28 14:01:37 | 只看该作者
mdgs 发表于 2013-4-27 22:25
火哥,再问一句,解压图像的函数在那个头文件里?

图像解压,我们只在 main.c 函数里写,你询问群里的人获取吧,我现在不在办公电脑上

回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
8#
发表于 2013-4-28 14:10:21 | 只看该作者
mdgs 发表于 2013-4-27 22:25
火哥,再问一句,解压图像的函数在那个头文件里?

假设 采集回来的图像地址是: img_bin_buff

你想解压到: u8 img_buf[H][W];  这个 二维数组里。(当然也可以是一维数组: u8 img_buf[H*W];  )
则需要调用这个函数:
img_extract(img_buf,(u8 *) img_bin_buff, H*W/8);          //解压为灰度图像,方便发送到上位机显

img_extract 函数的具体代码如下:

//压缩二值化图像解压(空间 换 时间 解压)
//srclen 是二值化图像的占用空间大小
void img_extract(u8 *dst, u8 *src, u32 srclen)
{
    u8 colour[2] = {255, 0};  //0 和 1 分别对应的颜色
    //注:野火的摄像头 0 表示 白色,1表示 黑色
    u8 tmpsrc;
    while(srclen --)
    {
        tmpsrc = *src++;
        *dst++ = colour[ (tmpsrc >> 7 ) & 0x01 ];
        *dst++ = colour[ (tmpsrc >> 6 ) & 0x01 ];
        *dst++ = colour[ (tmpsrc >> 5 ) & 0x01 ];
        *dst++ = colour[ (tmpsrc >> 4 ) & 0x01 ];
        *dst++ = colour[ (tmpsrc >> 3 ) & 0x01 ];
        *dst++ = colour[ (tmpsrc >> 2 ) & 0x01 ];
        *dst++ = colour[ (tmpsrc >> 1 ) & 0x01 ];
        *dst++ = colour[ (tmpsrc >> 0 ) & 0x01 ];
    }
}
回复 支持 反对

使用道具 举报

32

主题

387

帖子

1

精华

常驻嘉宾

Rank: 8Rank: 8

积分
4627
威望
2290
贡献
1181
兑换币
924
注册时间
2012-2-13
在线时间
578 小时
9#
发表于 2013-4-28 14:24:10 | 只看该作者
野火 发表于 2013-4-28 14:10
假设 采集回来的图像地址是: img_bin_buff

你想解压到: u8 img_buf[H][W];  这个 二维数组里。(当然 ...

谢谢,已经能采集到图像了,可视角度有点窄,如果换广角镜头的话,对鹰眼的效果影响大不大
回复 支持 反对

使用道具 举报

22

主题

1613

帖子

1

精华

跨届大侠

Rank: 10Rank: 10Rank: 10

积分
6784
QQ
威望
2910
贡献
1540
兑换币
1579
注册时间
2012-3-17
在线时间
1167 小时
10#
发表于 2013-4-28 14:31:35 | 只看该作者
mdgs 发表于 2013-4-28 14:24
谢谢,已经能采集到图像了,可视角度有点窄,如果换广角镜头的话,对鹰眼的效果影响大不大

影响效果不大
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-30 10:10 , Processed in 0.050196 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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