注册 登录
查看: 352|回复: 6

线性ccd利用串口调试?

[复制链接]
发表于 2014-4-3 21:58:33 | 显示全部楼层 |阅读模式
利用串口调试线性ccd,为什么采集后查看它的值只有开始的一两个数组里面有数值,以下的都是0x01了,明明是白色的跑到啊。把镜头遮住也一样,为啥?以下是程序
#include "common.h"
#include "include.h"

//定义存储接收CCD图像的数组
uint8 CCD_BUFF[TSL1401_MAX*3][TSL1401_SIZE+1];

void PIT0_IRQHandler();
void bin(uint8 *bin,uint8 * img,uint8 * difimg,uint16 len,uint8 maxdif);

void abs_diff(uint8 *dst,uint8 *src,uint16 len,uint8 * maxval,uint8 * avgval);
void maxvar(uint8 *buf,uint16 len,uint8  maxval);

void  main(void)
{
   #define BIN_MAX 0x80
    uint8 time = 20;
    uint8 i = TSL1401_MAX;
    //初始化 线性CCD
    tsl1401_set_addrs(TSL1401_MAX,(uint8 *)&CCD_BUFF[0]);
    tsl1401_init(time);                         //初始化 线性CCD ,配置 中断时间为 time
    // tsl1401_led_en(TSL1401_MAX);                //开启补光灯
    //tsl1401_led_dis(TSL1401_MAX);             //关闭补光灯

    //配置 中断函数 和 使能中断
    set_vector_handler(PIT0_VECTORn,PIT0_IRQHandler);
    enable_irq(PIT0_IRQn);


    uart_init(UART4,115200);   //初始化 串口
    while(1)
    {            
      tsl1401_get_img();
      uart_putbuff(UART4,(uint8 *)&CCD_BUFF[0],TSL1401_SIZE+1);   
    }
}


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-4-3 22:14:50 | 显示全部楼层
      
      tsl1401_get_img();
      for(i=0;i<128;i++)
        {
            str=CCD_BUFF[0][i];      
           uart_putchar (UART3,str);
        }
回复 支持 反对

使用道具 举报

发表于 2014-4-3 22:18:59 | 显示全部楼层
tsl1401_get_img();
      uart_putbuff (UART3,CCD_BUFF[0], 128);
回复 支持 反对

使用道具 举报

发表于 2014-4-3 23:41:03 | 显示全部楼层
tsl1401_set_addrs(1,(uint8 *)&CCD_BUFF[0]);  好像是这样吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-5 13:32:22 | 显示全部楼层
丨筱杰呦丨 发表于 2014-4-3 22:18
tsl1401_get_img();
      uart_putbuff (UART3,CCD_BUFF[0], 128);

感觉是采集函数的问题,用软件观察数组的值,遮住摄像头与不遮住摄像头的值差不多
回复 支持 反对

使用道具 举报

发表于 2014-4-5 16:34:14 | 显示全部楼层
你用串口调试助手看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-4-8 19:02:54 | 显示全部楼层
丨筱杰呦丨 发表于 2014-4-5 16:34
你用串口调试助手看看

OK了,线接的不好的原因
回复 支持 反对

使用道具 举报

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

本版积分规则

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