ra8-firmware 0.1.0
Bare-metal firmware for the Renesas RA8 family (RA8D2 / RA8P1)
Loading...
Searching...
No Matches
ra8_cac.h
Go to the documentation of this file.
1
11
12#pragma once
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18#include <stdint.h>
19
20#include "ra8_err.h"
21
30[[nodiscard]] ra8_err_t ra8_cac_init(uint16_t upper, uint16_t lower);
31
40[[nodiscard]] ra8_err_t ra8_cac_measure(uint16_t* out_count);
41
63
68typedef void (*ra8_cac_event_fn_t)(void* ctx, uint8_t status_mask);
69
74[[nodiscard]] ra8_err_t ra8_cac_deinit(void);
75
80[[nodiscard]] ra8_err_t ra8_cac_get_status(uint8_t* out_mask);
81
86[[nodiscard]] ra8_err_t ra8_cac_clear_status(uint8_t mask);
87
92[[nodiscard]] ra8_err_t ra8_cac_attach_handler(ra8_cac_event_fn_t fn, void* ctx);
93
107void ra8_cac_dispatch(void);
108
113[[nodiscard]] ra8_err_t ra8_cac_enter_stop(void);
114
119[[nodiscard]] ra8_err_t ra8_cac_exit_stop(void);
120
121#ifdef __cplusplus
122}
123#endif
void(* ra8_cac_event_fn_t)(void *ctx, uint8_t status_mask)
CAC event callback.
Definition ra8_cac.h:68
ra8_err_t ra8_cac_init(uint16_t upper, uint16_t lower)
Programme CAC with upper + lower bounds on measured cycles.
Definition ra8_cac.c:99
ra8_err_t ra8_cac_exit_stop(void)
Exit MSTP-gated stop.
Definition ra8_cac.c:236
ra8_cac_status_mask_t
CASTR status-flag bit masks (HUM Ch 10.2.5 "CASTR" p 424).
Definition ra8_cac.h:57
@ k_ra8_cac_status_ferrf
Frequency error (CASTR bit 0).
Definition ra8_cac.h:59
@ k_ra8_cac_status_none
RA8 cac status none.
Definition ra8_cac.h:58
@ k_ra8_cac_status_mendf
Measurement end (CASTR bit 1).
Definition ra8_cac.h:60
@ k_ra8_cac_status_ovff
Counter overflow (CASTR bit 2).
Definition ra8_cac.h:61
ra8_err_t ra8_cac_deinit(void)
Tear down the CAC (disable + MSTP release).
Definition ra8_cac.c:169
ra8_err_t ra8_cac_clear_status(uint8_t mask)
Clear the CASTR flag bits via CAICR.
Definition ra8_cac.c:191
void ra8_cac_dispatch(void)
Dispatch CAC events – snapshot + fire callback.
Definition ra8_cac.c:212
ra8_err_t ra8_cac_attach_handler(ra8_cac_event_fn_t fn, void *ctx)
Attach a callback for CAC events.
Definition ra8_cac.c:205
ra8_err_t ra8_cac_measure(uint16_t *out_count)
Kick off a CAC measurement and wait for completion.
Definition ra8_cac.c:125
ra8_err_t ra8_cac_get_status(uint8_t *out_mask)
Read the CASTR flag bits.
Definition ra8_cac.c:184
ra8_err_t ra8_cac_enter_stop(void)
Put CAC into MSTP-gated stop.
Definition ra8_cac.c:227
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