高级会员
- 积分
- 669
- 威望
- 320
- 贡献
- 183
- 兑换币
- 190
- 注册时间
- 2014-5-11
- 在线时间
- 83 小时
- 毕业学校
- 河北科技大学
|
采集图像采集几帧就采集不了不能连续采集,什么情况?
void ReadADresult(void)
{
byte i=0,tslp=0;
TSL_CLK=1;//起始电平高
TSL_SI=0; //起始电平低
delay_us(1); //合理的延时
TSL_SI=1; //上升沿
TSL_CLK=0;//下降沿
delay_us(1); //合理延时
TSL_CLK=1;//上升沿
TSL_SI=0; //下降沿
delay_us(1); //合理延时
for(i=0;i<64;i++)
{
TSL_CLK=0;//下降沿
delay_us(8-i/8+1); //合理延时
ADV[tslp]=AD_get(0);
// while(!ATD0STAT0_SCF);//等待转换结束
++tslp;
TSL_CLK=1;//上升沿
delay_us(8-i/8+1); //合理延时
}
for(i=0;i<64;i++)
{
TSL_CLK=0;//下降沿
delay_us(i/8+1); //合理延时
ADV[tslp]=AD_get(0);//AD采集
//while(!ATD0STAT0_SCF);//等待转换结束
++tslp;
TSL_CLK=1;//上升沿
delay_us(i/8+1); //合理延时
}
}
void INIT_AD_one(void)
{
ATD0CTL1=0x20; //10位AD
ATD0CTL2=0xc0; //禁止外部触发, 中断禁止
ATD0CTL3=0x88; //右对齐无符号,每次转换1个序列, No FIFO, Freeze模式下继续转
ATD0CTL4=0x09; //765:采样时间为4个AD时钟周期,ATDClock=[BusClock*0.5]/[PRS+1]
ATD0DIEN=0x00; //禁止数字输入
}
/*************************************************************/
/* 起动AD转换 (单通道单次转换) */
/*************************************************************/
int AD_get(unsigned char s) //单通道扫描转换
{
int AD_data;
switch(s)
{
case 0: //读取CCD数据,10位精度
ATD0CTL5=0x20;
while(!ATD0STAT0_SCF);
AD_data = ATD0DR0;
break;
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|