timer.h
1/*
2 * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef _HARDWARE_TIMER_H
8#define _HARDWARE_TIMER_H
9
10#include "pico.h"
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16
17#ifndef PARAM_ASSERTIONS_ENABLED_TIMER
18#define PARAM_ASSERTIONS_ENABLED_TIMER 0
19#endif
20
21static inline void check_hardware_alarm_num_param(uint alarm_num) {
22 invalid_params_if(TIMER, alarm_num >= NUM_TIMERS);
23}
24
25uint32_t time_us_32();
26uint64_t time_us_64();
27void busy_wait_us_32(uint32_t delay_us);
28void busy_wait_us(uint64_t delay_us);
31typedef void (*hardware_alarm_callback_t)(uint alarm_num);
32void hardware_alarm_claim(uint alarm_num);
33void hardware_alarm_unclaim(uint alarm_num);
34void hardware_alarm_set_callback(uint alarm_num, hardware_alarm_callback_t callback);
35bool hardware_alarm_set_target(uint alarm_num, absolute_time_t t);
36void hardware_alarm_cancel(uint alarm_num);
37
38#ifdef __cplusplus
39}
40#endif
41
42#endif
void hardware_alarm_unclaim(uint alarm_num)
cooperatively release the claim on use of this hardware alarm_num
Definition: timer.c:85
static bool time_reached(absolute_time_t t)
Check if the specified timestamp has been reached.
Definition: timer.h:114
void hardware_alarm_claim(uint alarm_num)
cooperatively claim the use of this hardware alarm_num
Definition: timer.c:80
void hardware_alarm_cancel(uint alarm_num)
Cancel an existing target (if any) for a given hardware_alarm.
Definition: timer.c:101
bool hardware_alarm_set_target(uint alarm_num, absolute_time_t t)
Set the current target for the specified hardware alarm.
Definition: timer.c:96
uint64_t time_us_64(void)
Return the current 64 bit timestamp value in microseconds.
Definition: timer.c:33
void busy_wait_us_32(uint32_t delay_us)
Busy wait wasting cycles for the given (32 bit) number of microseconds.
Definition: timer.c:17
void hardware_alarm_set_callback(uint alarm_num, hardware_alarm_callback_t callback)
Enable/Disable a callback for a hardware timer on this core.
Definition: timer.c:91
void busy_wait_until(absolute_time_t t)
Busy wait wasting cycles until after the specified timestamp.
Definition: timer.c:58
static uint32_t time_us_32(void)
Return a 32 bit timestamp value in microseconds.
Definition: timer.h:65
void busy_wait_us(uint64_t delay_us)
Busy wait wasting cycles for the given (64 bit) number of microseconds.
Definition: timer.c:25
void(* hardware_alarm_callback_t)(uint alarm_num)
Definition: timer.h:127
Definition: types.h:33