Select one of the symbols to view example projects that use it.
 
Outline
#include "hardware/ticks.h"
tick_start(tick_gen_num_t, uint)
tick_stop(tick_gen_num_t)
tick_is_running(tick_gen_num_t)
Files
loading...
SourceVuRaspberry Pi Pico SDK and ExamplesPicoSDKsrc/rp2_common/hardware_ticks/ticks.c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* * Copyright (c) 2024 Raspberry Pi (Trading) Ltd. * * SPDX-License-Identifier: BSD-3-Clause *//* ... */ #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); // On RP2040, this also provides a tick reference to the timer and SysTick watchdog_hw->tick = cycles | WATCHDOG_TICK_ENABLE_BITS;/* ... */ #else cycles <<= TICKS_WATCHDOG_CYCLES_LSB; valid_params_if(HARDWARE_TICKS, cycles <= TICKS_WATCHDOG_CYCLES_BITS); // On later hardware, separate tick generators for every tick destination. 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 // On later hardware, separate tick generators for every tick destination. return ticks_hw->ticks[tick].ctrl & TICKS_WATCHDOG_CTRL_RUNNING_BITS;/* ... */ #endif }{ ... }
Details