update camera interface

This commit is contained in:
Stanislaw Kaushanski 2025-02-26 17:10:46 +01:00
parent b34365534c
commit e372f59715
2 changed files with 37 additions and 8 deletions

View File

@ -43,7 +43,7 @@ static void send_msg(uint32_t cluster, uint32_t component, uint32_t msg_len, uin
set_mkcontrolclusterstreamcontroller_REG_SEND(msgif, 1); set_mkcontrolclusterstreamcontroller_REG_SEND(msgif, 1);
} }
static uint32_t check_response() { static uint32_t check_response(void) {
while (true) { while (true) {
if (get_mkcontrolclusterstreamcontroller_REG_ACK_PENDING_RESPONSE(msgif) != 0) { if (get_mkcontrolclusterstreamcontroller_REG_ACK_PENDING_RESPONSE(msgif) != 0) {
return get_mkcontrolclusterstreamcontroller_REG_RECV_ID_RECV_ID(msgif); return get_mkcontrolclusterstreamcontroller_REG_RECV_ID_RECV_ID(msgif);

View File

@ -1,10 +1,10 @@
/* /*
* Copyright (c) 2023 - 2024 MINRES Technologies GmbH * Copyright (c) 2023 - 2025 MINRES Technologies GmbH
* *
* SPDX-License-Identifier: Apache-2.0 * SPDX-License-Identifier: Apache-2.0
* *
* Generated at 2024-11-27 09:36:49 UTC * Generated at 2025-02-26 17:04:33 UTC
* by peakrdl_mnrs version 1.2.7 * by peakrdl_mnrs version 1.2.9
*/ */
#ifndef _BSP_CAMERA_H #ifndef _BSP_CAMERA_H
@ -15,6 +15,7 @@
typedef struct { typedef struct {
volatile uint32_t PIXEL; volatile uint32_t PIXEL;
volatile uint32_t CONFIG; volatile uint32_t CONFIG;
volatile uint32_t CONFIG1;
volatile uint32_t DATA_SIZE; volatile uint32_t DATA_SIZE;
volatile uint32_t START; volatile uint32_t START;
volatile uint32_t STATUS; volatile uint32_t STATUS;
@ -83,6 +84,14 @@ typedef struct {
#define CAMERA_CONFIG_HIGH_SPEED_MASK 0x1 #define CAMERA_CONFIG_HIGH_SPEED_MASK 0x1
#define CAMERA_CONFIG_HIGH_SPEED(V) ((V & CAMERA_CONFIG_HIGH_SPEED_MASK) << CAMERA_CONFIG_HIGH_SPEED_OFFS) #define CAMERA_CONFIG_HIGH_SPEED(V) ((V & CAMERA_CONFIG_HIGH_SPEED_MASK) << CAMERA_CONFIG_HIGH_SPEED_OFFS)
#define CAMERA_CONFIG1_AUTO_IDLE_OFFS 0
#define CAMERA_CONFIG1_AUTO_IDLE_MASK 0x1
#define CAMERA_CONFIG1_AUTO_IDLE(V) ((V & CAMERA_CONFIG1_AUTO_IDLE_MASK) << CAMERA_CONFIG1_AUTO_IDLE_OFFS)
#define CAMERA_CONFIG1_AUTO_DISCARD_FRAME_OFFS 1
#define CAMERA_CONFIG1_AUTO_DISCARD_FRAME_MASK 0x1
#define CAMERA_CONFIG1_AUTO_DISCARD_FRAME(V) ((V & CAMERA_CONFIG1_AUTO_DISCARD_FRAME_MASK) << CAMERA_CONFIG1_AUTO_DISCARD_FRAME_OFFS)
#define CAMERA_DATA_SIZE_OFFS 0 #define CAMERA_DATA_SIZE_OFFS 0
#define CAMERA_DATA_SIZE_MASK 0x3 #define CAMERA_DATA_SIZE_MASK 0x3
#define CAMERA_DATA_SIZE(V) ((V & CAMERA_DATA_SIZE_MASK) << CAMERA_DATA_SIZE_OFFS) #define CAMERA_DATA_SIZE(V) ((V & CAMERA_DATA_SIZE_MASK) << CAMERA_DATA_SIZE_OFFS)
@ -96,7 +105,7 @@ typedef struct {
#define CAMERA_STATUS(V) ((V & CAMERA_STATUS_MASK) << CAMERA_STATUS_OFFS) #define CAMERA_STATUS(V) ((V & CAMERA_STATUS_MASK) << CAMERA_STATUS_OFFS)
#define CAMERA_CAMERA_CLOCK_CTRL_OFFS 0 #define CAMERA_CAMERA_CLOCK_CTRL_OFFS 0
#define CAMERA_CAMERA_CLOCK_CTRL_MASK 0xfffff #define CAMERA_CAMERA_CLOCK_CTRL_MASK 0xfff
#define CAMERA_CAMERA_CLOCK_CTRL(V) ((V & CAMERA_CAMERA_CLOCK_CTRL_MASK) << CAMERA_CAMERA_CLOCK_CTRL_OFFS) #define CAMERA_CAMERA_CLOCK_CTRL(V) ((V & CAMERA_CAMERA_CLOCK_CTRL_MASK) << CAMERA_CAMERA_CLOCK_CTRL_OFFS)
#define CAMERA_IE_EN_PIXEL_AVAIL_OFFS 0 #define CAMERA_IE_EN_PIXEL_AVAIL_OFFS 0
@ -215,6 +224,26 @@ inline void set_camera_config_high_speed(volatile camera_t* reg, uint8_t value){
reg->CONFIG = (reg->CONFIG & ~(0x1U << 31)) | (value << 31); reg->CONFIG = (reg->CONFIG & ~(0x1U << 31)) | (value << 31);
} }
//CAMERA_CONFIG1
inline uint32_t get_camera_config1(volatile camera_t* reg){
return reg->CONFIG1;
}
inline void set_camera_config1(volatile camera_t* reg, uint32_t value){
reg->CONFIG1 = value;
}
inline uint32_t get_camera_config1_auto_idle(volatile camera_t* reg){
return (reg->CONFIG1 >> 0) & 0x1;
}
inline void set_camera_config1_auto_idle(volatile camera_t* reg, uint8_t value){
reg->CONFIG1 = (reg->CONFIG1 & ~(0x1U << 0)) | (value << 0);
}
inline uint32_t get_camera_config1_auto_discard_frame(volatile camera_t* reg){
return (reg->CONFIG1 >> 1) & 0x1;
}
inline void set_camera_config1_auto_discard_frame(volatile camera_t* reg, uint8_t value){
reg->CONFIG1 = (reg->CONFIG1 & ~(0x1U << 1)) | (value << 1);
}
//CAMERA_DATA_SIZE //CAMERA_DATA_SIZE
inline uint32_t get_camera_data_size(volatile camera_t* reg){ inline uint32_t get_camera_data_size(volatile camera_t* reg){
return reg->DATA_SIZE; return reg->DATA_SIZE;
@ -259,10 +288,10 @@ inline void set_camera_camera_clock_ctrl(volatile camera_t* reg, uint32_t value)
reg->CAMERA_CLOCK_CTRL = value; reg->CAMERA_CLOCK_CTRL = value;
} }
inline uint32_t get_camera_camera_clock_ctrl_divider(volatile camera_t* reg){ inline uint32_t get_camera_camera_clock_ctrl_divider(volatile camera_t* reg){
return (reg->CAMERA_CLOCK_CTRL >> 0) & 0xfffff; return (reg->CAMERA_CLOCK_CTRL >> 0) & 0xfff;
} }
inline void set_camera_camera_clock_ctrl_divider(volatile camera_t* reg, uint32_t value){ inline void set_camera_camera_clock_ctrl_divider(volatile camera_t* reg, uint16_t value){
reg->CAMERA_CLOCK_CTRL = (reg->CAMERA_CLOCK_CTRL & ~(0xfffffU << 0)) | (value << 0); reg->CAMERA_CLOCK_CTRL = (reg->CAMERA_CLOCK_CTRL & ~(0xfffU << 0)) | (value << 0);
} }
//CAMERA_IE //CAMERA_IE