counter-alarm
Open a counter, set an alarm for N ticks in the future, fire a callback. The minimal demo for <alp/counter.h>.
Source: examples/counter-alarm/.
board.yaml
schema_version: 2
som:
sku: E1M-AEN701
carrier:
name: E1M-EVK
cores:
m55_hp:
os: zephyr
app: ./src
peripherals: [counter]
diagnostics:
log_level: info
Source (abbreviated)
#include <alp/counter.h>
#include <alp/e1m_pinout.h>
static void on_alarm(alp_counter_t *c, void *user) {
printk("[counter] alarm fired\n");
}
int main(void) {
alp_counter_t *cnt = alp_counter_open(&(alp_counter_config_t){
.channel_id = E1M_COUNTER0,
.clock_hz = 1000000,
});
if (cnt == NULL) return -1;
alp_counter_start(cnt);
alp_counter_set_alarm(cnt, /* ticks_from_now */ 1000000u, on_alarm, NULL);
k_msleep(2000);
alp_counter_close(cnt);
return 0;
}
See also
<alp/counter.h>referenceqenc-readout— quadrature-encoder variant- Examples overview
Questions about this page? Discuss in Community Forum