|
用SCCB时序,此处的noACK为何意?
void noAck(void)
{
IOWR_ALTERA_AVALON_PIO_DIRECTION(SDA_BASE, IN);
SIO_D_SET;
usleep(DELAY_TIME);
SIO_C_SET;
usleep(DELAY_TIME);
SIO_C_CLR;
usleep(DELAY_TIME);
SIO_D_CLR;
usleep(DELAY_TIME);
}
unsigned char rdOV7670Reg(unsigned char regID, unsigned char *regDat)
{
//通过写操作设置寄存器地址
startSCCB();
if(0==SCCBwriteByte(0x42))
{
stopSCCB();
return(0);
}
usleep(100);
if(0==SCCBwriteByte(regID))
{
stopSCCB();
return(0);
}
stopSCCB();
usleep(100);
//设置寄存器地址后,才是读
startSCCB();
if(0==SCCBwriteByte(0x42))
{
stopSCCB();
return(0);
}
usleep(100);
*regDat=SCCBreadByte();
noAck();
stopSCCB();
return(1);
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……
|