Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion core/embed/trezorhal/camera.c
Original file line number Diff line number Diff line change
Expand Up @@ -266,14 +266,19 @@ void camera_resume(void)
HAL_DCMI_Resume(&DCMI_Handle);
}

void camera_capture_start(void)
bool camera_capture_start(void)
{
camera_power_on();
if ( !camera_configured )
{
return false;
}
#if CAMERA_CAPTURE_MODE == 0
camera_start((uint8_t*)CAM_BUF_ADDRESS, DCMI_MODE_SNAPSHOT);
#else
camera_start((uint8_t*)CAM_BUF_ADDRESS, DCMI_MODE_CONTINUOUS);
#endif
return true;
}

int camera_capture_done(void)
Expand Down Expand Up @@ -338,6 +343,10 @@ void camera_power_on(void)
camera_delay(10);
CAMERA_RST_HIGH();
camera_delay(20);
if ( !camera_is_online() )
{
return;
}
camera_powered = true;
}

Expand Down
2 changes: 1 addition & 1 deletion core/embed/trezorhal/camera.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ unsigned char camera_sccb_read_reg(unsigned char reg_addr, unsigned char* data);
unsigned char camera_sccb_write_reg(unsigned char reg_addr, unsigned char* data);
bool camera_get_id(uint16_t* id);
bool camera_is_online(void);
void camera_capture_start(void);
bool camera_capture_start(void);
int camera_capture_done(void);
void camera_power_off(void);
void camera_power_on(void);
Expand Down
3 changes: 1 addition & 2 deletions core/embed/trezorhal/camera_qrcode.c
Original file line number Diff line number Diff line change
Expand Up @@ -132,11 +132,10 @@ int camera_qr_decode(uint32_t x, uint32_t y, uint8_t* data, uint32_t data_len)
{

int len = 0;
if ( !camera_is_online() )
if ( !camera_capture_start() )
{
return 0;
}
camera_capture_start();
if ( camera_capture_done() )
{
dma2d_copy_buffer(
Expand Down
Loading