Skip to main content

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

Questions about this page? Discuss in Community Forum