智能车制作

标题: K60的ccd读取数据问题 [打印本页]

作者: 柳帅    时间: 2014-10-17 20:00
标题: K60的ccd读取数据问题
为什么我用k60的ccd读数据,用UART传回的数据与我用程序直接显示在液晶上的不一样?UART传回的数据基本是满值,而液晶的值一直在跳。我都不知道怎么处理了,求大神告诉我怎么直接用bdm看程序运行时的数据啊。

作者: 机器人没名字    时间: 2014-10-17 21:42
不是很方便   建议你检查下变量是否有错误  如果使用测试历程那么也只剩下接线问题了 一般来说他只有3根线不容易出问题  
作者: 纯洁@麻花    时间: 2014-10-17 22:35
先看看你没发之前的数据对不对
作者: mengluo    时间: 2014-10-18 11:53
会不会是串口传的时候把曝光时间延长了
作者: 黑色枫夜    时间: 2014-10-18 19:02
楼上+1,注意看一下CCD的时序,曝光时间不会被串口延长了吧?以前我也吃过这个亏
作者: 柳帅    时间: 2014-10-20 17:31
纯洁@麻花 发表于 2014-10-17 22:35
先看看你没发之前的数据对不对

如何看呢?k60最大的问题就是我现在不能通过bdm直接看程序运行时的各个数据了,求教啊啊啊QAQ

作者: 柳帅    时间: 2014-10-20 17:39
黑色枫夜 发表于 2014-10-18 19:02
楼上+1,注意看一下CCD的时序,曝光时间不会被串口延长了吧?以前我也吃过这个亏

我想过这个问题。。。。但是我不知道曝光时间是哪个。。。大神能帮我看看么
void RD_TSL(void)
{
    uint8 i = 0, tslp = 0;
    TSL_CLK = 1;                      //起始电平高

    TSL_SI = 0;        //起始电平低

    DelayUs(1);        //合理的延时      
    TSL_SI = 1;       //上升沿

    TSL_CLK = 0;      //下降沿

    DelayUs(1);        //合理的延时     
    TSL_CLK = 1;     //上升沿

    TSL_SI = 0;        //下降沿

    DelayUs(1); //合理的延时      
    for (i = 0; i<128; i++)
    {
        TSL_CLK = 0;        //下降沿   
        DelayUs(1);          //合理的延时
        
        //ADV[tslp] = LPLD_ADC_Get(ADC0, AD8);
        //ADV[tslp] = LPLD_ADC_Get(ADC0, AD9);

        ADV = LPLD_ADC_Get(ADC0, AD13);          //读取ccd的数据并赋值到ADV数组里面
        //ADV[tslp] = LPLD_ADC_Get(ADC0, AD12);
            temp=ADV;
        ++tslp;
        TSL_CLK = 1;        //上升沿
        DelayUs(1);       //合理的延时  
    }
    TSL_CLK = 0;

    DelayUs(1);
    TSL_CLK = 1;

    DelayUs(1);
    TSL_CLK = 0;

    DelayUs(1);
}


作者: 纯洁@麻花    时间: 2014-10-20 17:44
本帖最后由 纯洁@麻花 于 2014-10-20 17:46 编辑
柳帅 发表于 2014-10-20 17:31
如何看呢?k60最大的问题就是我现在不能通过bdm直接看程序运行时的各个数据了,求教啊啊啊QAQ

IAR有在线调试啊。。。LIVE WATCH。。。CW也有啊。。。

作者: 纯洁@麻花    时间: 2014-10-20 17:46
柳帅 发表于 2014-10-20 17:39
我想过这个问题。。。。但是我不知道曝光时间是哪个。。。大神能帮我看看么
void RD_TSL(void)
{

曝光时间是你本次SI开始到下一次SI开始啊。。。简单说就是你执行两次这段代码的间隔时间

作者: 柳帅    时间: 2014-10-20 17:48
纯洁@麻花 发表于 2014-10-20 17:46
曝光时间是你本次SI开始到下一次SI开始啊。。。简单说就是你执行两次这段代码的间隔时间

哦哦!我去看看!谢谢!QAQ

作者: 黑色枫夜    时间: 2014-10-20 18:51
纯洁@麻花 发表于 2014-10-20 17:46
曝光时间是你本次SI开始到下一次SI开始啊。。。简单说就是你执行两次这段代码的间隔时间

补充一下,实际上是从读数据的128个时钟信号中的第19个时钟信号开始曝光,但是由于18个时钟周期时间很短,所以可以粗略认为是两个SI之间

作者: 纯洁@麻花    时间: 2014-10-20 18:54
黑色枫夜 发表于 2014-10-20 18:51
补充一下,实际上是从读数据的128个时钟信号中的第19个时钟信号开始曝光,但是由于18个时钟周期时间很短, ...

确实是,严格按照手册来解释,思维严谨,哈哈





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