📄 camera.c
字号:
#include "I2C.h"
#define INSEL 0
#define POWER 0x0f
#define STATUS 0x10
#define ADC_CONTROL 0x3a
#define ADC_SWITCH1 0xc3
#define ADC_SWITCH2 0xc4
#define LOCK_COUNT 0x51
extern void reset_7180_adc();
void camera_init()
{
unsigned char data=0;
bool ret;
//for(data=0;data<255;data++)
//{
ret = I2C_Init(0x40);
delay(10000); //10ms
// if(ret==true)
// {
// data = data;
// }
//}
//reset
//data = 0x80;
//ret = I2C_Write(data, POWER);
/*ADV7181
//Power down ADC 1 and ADC 2
data = 0x16;
ret = I2C_Write(data, ADC_CONTROL);
data = 0x80;
ret = I2C_Write(data, ADC_SWITCH2);
data = 0x0;
ret = I2C_Write(data, ADC_SWITCH1);
data = 0xa4;
ret = I2C_Write(data, LOCK_COUNT);
*/
/*
delay(10000); //10ms
ret = I2C_Write(0x1, 0x03);
delay(10000); //10ms
ret = I2C_Read(&data, 0x03);
*/
delay(10000); //10ms
ret = I2C_Write(0x00, 0x1D);
delay(1000000); //10ms
}
void camera_select(int id)
{
unsigned char data;
unsigned char buf;
bool ret;
/* int i;
//ADV7181
switch(id)
{
case 0: data = 0xc; break;
case 4: data = 0x4; break;
case 5: data = 0xd; break;
case 6: data = 0x5; break;
}
// ret = I2C_Write(data, ADC_SWITCH1);
delay(1000000);
*/
I2C_Init(0x40);
delay(100000); //10ms
switch(id)
{
case 1: data = 0x0; break;
case 2: data = 0x0; break;
case 3: data = 0x0; break;
case 4: data = 0x3; break;
case 5: data = 0x3; break;
case 6: data = 0x3; break;
}
ret = I2C_Write(data, 0x00);
delay(100000); //10ms
}
void Reset_7180()
{
reset_7180_adc();
camera_init();
camera_select(1);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -