/* ... */
#include "hardware/ticks.h"
void tick_start(tick_gen_num_t tick, uint cycles) {
valid_params_if(HARDWARE_TICKS, tick < TICK_COUNT);
#if PICO_RP2040
((void)tick);
cycles <<= WATCHDOG_TICK_CYCLES_LSB;
valid_params_if(HARDWARE_TICKS, cycles <= WATCHDOG_TICK_CYCLES_BITS);
watchdog_hw->tick = cycles | WATCHDOG_TICK_ENABLE_BITS;/* ... */
#else
cycles <<= TICKS_WATCHDOG_CYCLES_LSB;
valid_params_if(HARDWARE_TICKS, cycles <= TICKS_WATCHDOG_CYCLES_BITS);
ticks_hw->ticks[tick].cycles = cycles;
ticks_hw->ticks[tick].ctrl = TICKS_WATCHDOG_CTRL_ENABLE_BITS;/* ... */
#endif
}{ ... }
void tick_stop(tick_gen_num_t tick) {
valid_params_if(HARDWARE_TICKS, tick < TICK_COUNT);
#if PICO_RP2040
((void)tick);
hw_clear_bits(&watchdog_hw->tick, WATCHDOG_TICK_ENABLE_BITS);/* ... */
#else
hw_clear_bits(&ticks_hw->ticks[tick].ctrl, TICKS_WATCHDOG_CTRL_ENABLE_BITS);
#endif
}{ ... }
bool tick_is_running(tick_gen_num_t tick) {
valid_params_if(HARDWARE_TICKS, tick < TICK_COUNT);
#if PICO_RP2040
((void)tick);
return watchdog_hw->tick & WATCHDOG_TICK_ENABLE_BITS;/* ... */
#else
return ticks_hw->ticks[tick].ctrl & TICKS_WATCHDOG_CTRL_RUNNING_BITS;/* ... */
#endif
}{ ... }