金牌会员
 
- 积分
- 1005

- 威望
- 534
- 贡献
- 287
- 兑换币
- 346
- 注册时间
- 2015-11-15
- 在线时间
- 92 小时
- 毕业学校
- FF14
|
这个函数跟自适应没什么关系 就为了说明CCD 时序问题
128 个像素的采集与输出用到了 SI 和 CLK 信号,在这 128 个像素之外,还有一个开关逻辑控制和移位寄存器电路。SI 通过该电路,控制每一个像素的积分和复位操作;CLK 通过该电路控制每一个像素电压的依次输出。
我们需要按照上CCD时序对CCD进行曝光与采集的控制。
图中,第 19 个 CLK 到下一个 SI 开始的这段时间,就是 CCD 的积分时间,及曝
光时间,之前的 18 个 CLK 的时间为积分器的复位时间。在每一个 SI 信号之后
采集到的像素均是这个 SI 信号之前曝光得到的图像。具体的方法是:在 SI 持
续高电平 20ns 后产生第一个 CLK 信号,并在每个 CLK 信号的下降沿时采集 AO
引脚输出的电压值。在采集了 128 个像素后,还必须生成第 129 个 CLK 信号以
结束本次采集。在第 129 个 CLK 之后到下一个 SI 信号之间的时间就是下次采集
的曝光时间。
void TSL1401_GetLine(void)
{
u8 i;
CCDab_SI(1);
Delay(1);
CCDab_CLK(1);
Delay(1);
CCDab_SI(0);
Delay(1);
Delay(2);
CCDab_CLK(0);
//采样第一个点
CCDa_Pixel[0]=adc_once(1,4);
CCDb_Pixel[0]=adc_once(1,5);
//采集第 2~128 个点
for(i=1; i<128; i++)
{
Delay(2);
CCDab_CLK(1);
Delay(2);
CCDab_CLK(0);
CCDa_Pixel[i]=adc_once(1,4);
CCDb_Pixel[i]=adc_once(1,5);
}
//发送第 129 个 clk
Delay(2);
CCDab_CLK(1);
Delay(2);
CCDab_CLK(0);
CCDa_Pixel[0]=CCDa_Pixel[1];
CCDb_Pixel[0]=CCDb_Pixel[1];
}
给你个参考 这里用到了2个CCD
|
|