ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_dac_b.h
Go to the documentation of this file.
1
18
19#pragma once
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25#include <stdint.h>
26
27#include "ra8_err.h"
28
43
57
75
82typedef void (*ra8_dac_b_update_fn_t)(void* ctx, uint8_t channel);
83
84/* =============================================================================
85 * Lifecycle
86 * =============================================================================
87 */
88
94[[nodiscard]] ra8_err_t ra8_dac_b_init(void);
95
109[[nodiscard]] ra8_err_t ra8_dac_b_init_configured(const ra8_dac_b_cfg_t* cfg);
110
117[[nodiscard]] ra8_err_t ra8_dac_b_deinit(void);
118
119/* =============================================================================
120 * Legacy polling API
121 * =============================================================================
122 */
123
131[[nodiscard]] ra8_err_t ra8_dac_b_write(uint8_t channel, uint16_t value);
132
133/* =============================================================================
134 * Runtime reconfigure
135 * =============================================================================
136 */
137
145
153[[nodiscard]] ra8_err_t ra8_dac_b_set_output_enable(uint8_t channel, bool enable);
154
155/* =============================================================================
156 * Status
157 * =============================================================================
158 */
159
166[[nodiscard]] ra8_err_t ra8_dac_b_get_status(uint8_t* out_mask);
167
173[[nodiscard]] ra8_err_t ra8_dac_b_clear_status(void);
174
175/* =============================================================================
176 * Interrupt path
177 * =============================================================================
178 */
179
187[[nodiscard]] ra8_err_t ra8_dac_b_attach_handler(ra8_dac_b_update_fn_t fn, void* ctx);
188
189/* =============================================================================
190 * Power transition
191 * =============================================================================
192 */
193
198[[nodiscard]] ra8_err_t ra8_dac_b_enter_stop(void);
199
204[[nodiscard]] ra8_err_t ra8_dac_b_exit_stop(void);
205
206/* =============================================================================
207 * ISR dispatch
208 * =============================================================================
209 */
210
225void ra8_dac_b_dispatch_update(uint8_t channel);
226
227#ifdef __cplusplus
228}
229#endif
ra8_err_t ra8_dac_b_set_output_enable(uint8_t channel, bool enable)
Toggle output-enable for one channel at runtime.
Definition ra8_dac_b.c:293
ra8_err_t ra8_dac_b_deinit(void)
Tear down the DAC_B peripheral.
Definition ra8_dac_b.c:260
ra8_err_t ra8_dac_b_init(void)
Legacy init – zero every DAC_B register + enable MSTP.
Definition ra8_dac_b.c:153
ra8_dac_b_vref_t
VREFH operating-mode selection (DACR2.OFSSEL bit 8).
Definition ra8_dac_b.h:39
@ k_ra8_dac_b_vref_low
OFSSEL=1: VREFH < 2.7V.
Definition ra8_dac_b.h:41
@ k_ra8_dac_b_vref_normal
OFSSEL=0: VREFH >= 2.7V (default).
Definition ra8_dac_b.h:40
ra8_err_t ra8_dac_b_write(uint8_t channel, uint16_t value)
Programme a DAC channel with a 12-bit code.
Definition ra8_dac_b.c:172
ra8_dac_b_data_format_t
Data placement selection (DACR1.DPSEL bit 16).
Definition ra8_dac_b.h:53
@ k_ra8_dac_b_format_right
DPSEL=0: right-justified (default).
Definition ra8_dac_b.h:54
@ k_ra8_dac_b_format_left
DPSEL=1: left-justified.
Definition ra8_dac_b.h:55
ra8_err_t ra8_dac_b_init_configured(const ra8_dac_b_cfg_t *cfg)
Initialise DAC_B with a full config descriptor.
Definition ra8_dac_b.c:234
ra8_err_t ra8_dac_b_get_status(uint8_t *out_mask)
Read the DACR output-enable / DAE mask.
Definition ra8_dac_b.c:310
ra8_err_t ra8_dac_b_clear_status(void)
Clear DAE + DAOE bits (disable DAC outputs).
Definition ra8_dac_b.c:330
ra8_err_t ra8_dac_b_exit_stop(void)
Exit MSTP-gated stop.
Definition ra8_dac_b.c:352
void ra8_dac_b_dispatch_update(uint8_t channel)
Dispatch a DAC-update event – fire the registered callback.
Definition ra8_dac_b.c:362
ra8_err_t ra8_dac_b_set_vref(ra8_dac_b_vref_t vref)
Change the DAC voltage reference at runtime.
Definition ra8_dac_b.c:281
ra8_err_t ra8_dac_b_enter_stop(void)
Put DAC_B into MSTP-gated stop.
Definition ra8_dac_b.c:344
void(* ra8_dac_b_update_fn_t)(void *ctx, uint8_t channel)
DAC update (conversion done) event callback.
Definition ra8_dac_b.h:82
ra8_err_t ra8_dac_b_attach_handler(ra8_dac_b_update_fn_t fn, void *ctx)
Attach a DAC-update callback.
Definition ra8_dac_b.c:337
Error Code Definitions for ra8-firmware.
ra8_err_codes_t ra8_err_t
Canonical error-return type used by every ra8-firmware API.
Definition ra8_err.h:546
Configuration descriptor for ra8_dac_b_init_configured.
Definition ra8_dac_b.h:68
ra8_dac_b_vref_t vref
VREFH range (DACR2.OFSSEL).
Definition ra8_dac_b.h:69
bool enable_channel1
Initial DACEN1 state.
Definition ra8_dac_b.h:73
ra8_dac_b_data_format_t data_format
Data placement (DACR1.DPSEL).
Definition ra8_dac_b.h:70
bool internal_output_enabled
Drive internal route (clears DAOUTDIS).
Definition ra8_dac_b.h:71
bool enable_channel0
Initial DACEN0 state.
Definition ra8_dac_b.h:72