Skip to content

Commit 97d2c29

Browse files
fix: fix gc0308 REGLIST_TAIL define error (#408)
1 parent eee6384 commit 97d2c29

File tree

2 files changed

+23
-9
lines changed

2 files changed

+23
-9
lines changed

sensors/gc0308.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,10 +88,10 @@ static int set_reg_bits(uint8_t slv_addr, uint16_t reg, uint8_t offset, uint8_t
8888
return ret;
8989
}
9090

91-
static int write_regs(uint8_t slv_addr, const uint16_t (*regs)[2])
91+
static int write_regs(uint8_t slv_addr, const uint8_t (*regs)[2], size_t regs_size)
9292
{
9393
int i = 0, ret = 0;
94-
while (!ret && regs[i][0] != REGLIST_TAIL) {
94+
while (!ret && (i < regs_size)) {
9595
if (regs[i][0] == REG_DLY) {
9696
vTaskDelay(regs[i][1] / portTICK_PERIOD_MS);
9797
} else {
@@ -132,11 +132,12 @@ static int reset(sensor_t *sensor)
132132
ESP_LOGE(TAG, "Software Reset FAILED!");
133133
return ret;
134134
}
135-
vTaskDelay(100 / portTICK_PERIOD_MS);
136-
ret = write_regs(sensor->slv_addr, gc0308_sensor_default_regs);
135+
136+
vTaskDelay(80 / portTICK_PERIOD_MS);
137+
ret = write_regs(sensor->slv_addr, gc0308_sensor_default_regs, sizeof(gc0308_sensor_default_regs)/(sizeof(uint8_t) * 2));
137138
if (ret == 0) {
138139
ESP_LOGD(TAG, "Camera defaults loaded");
139-
vTaskDelay(100 / portTICK_PERIOD_MS);
140+
vTaskDelay(80 / portTICK_PERIOD_MS);
140141
write_reg(sensor->slv_addr, 0xfe, 0x00);
141142
#ifdef CONFIG_IDF_TARGET_ESP32
142143
set_reg_bits(sensor->slv_addr, 0x28, 4, 0x07, 1); //frequency division for esp32, ensure pclk <= 15MHz

sensors/private_include/gc0308_settings.h

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,9 @@
33

44
#include <stdint.h>
55

6-
#define REG_DLY 0xffff
7-
#define REGLIST_TAIL 0x0000 /* Array end token */
6+
#define REG_DLY 0xff
87

9-
static const uint16_t gc0308_sensor_default_regs[][2] = {
8+
static const uint8_t gc0308_sensor_default_regs[][2] = {
109
{0xfe, 0x00},
1110
{0xec, 0x20},
1211
{0x05, 0x00},
@@ -239,7 +238,21 @@ static const uint16_t gc0308_sensor_default_regs[][2] = {
239238
{0x65, 0xd3},
240239
{0x66, 0x60},
241240
{0xfe, 0x00},
242-
{REGLIST_TAIL, 0x00},
241+
242+
{0x01, 0x32}, //frame setting
243+
{0x02, 0x0c},
244+
{0x0f, 0x01},
245+
{0xe2, 0x00},
246+
{0xe3, 0x78},
247+
{0xe4, 0x00},
248+
{0xe5, 0xfe},
249+
{0xe6, 0x01},
250+
{0xe7, 0xe0},
251+
{0xe8, 0x01},
252+
{0xe9, 0xe0},
253+
{0xea, 0x01},
254+
{0xeb, 0xe0},
255+
{0xfe, 0x00},
243256
};
244257

245258
#endif

0 commit comments

Comments
 (0)