Main Page | Modules | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals | Related Pages

BF51x/otTimer.h File Reference

Timer Library for BF51x. More...

#include "otdefs.h"

Defines

#define StartTimer(tim)   TimerSetAsCounter(tim); TimerEnable(tim, true)
 Simple macro to use the timer as counter.
#define ElapsedTimeMs(st, et)   (ElapsedTimeUs(st, et) / 1000)

Enumerations

enum  TimerId {
  TIMER0, TIMER1, TIMER2, TIMER3,
  TIMER4, TIMER5, TIMER6, TIMER7
}

Functions

void DelayUs (U32 dly)
 Delay. Not accurate!
void DelayMs (U32 dlyMs)
 Delay. Not accurate!
void CoreTimerSetInterruptService (int prescaler, U32 countValue, bool autoReload, void(*pCallback)())
 Set the interrupt service for the CORE timer.
The core timer is a programmable 32-bit interval timer which can generate periodic interrupts.
Unlike other peripherals, the core timer resides inside the Blackfin core and runs at the core clock (CCLK) rate.
Usage example:
// Prescaler action 400MHz / 40 (39+1) = 10MHz (100ns)
// Period: 5000000 * 100ns = 0.5s
CoreTimerSetInterruptService(39, 5000000, true, _coreTimerCallBack);
.
void CoreTimerEnable (bool ena)
 Enable CORE timer. Enable or disable CORE timer.
void TimerSetInterruptCallBack (int timer, void(*pCallback)())
 Change the callback of the specified timer.
TimerEnable(TIMER0, false);
TimerSetInterruptService(TIMER0, _newTimer0CallBack);
TimerEnable(TIMER0, true);
.
void TimerSetInterruptService (int timer, void(*pCallback)(), U32 countValue)
 Set the interrupt service for a timer. With this procedure is possible to set an interrupt service routine called at every terminal count of the timer.
Typical usage:
TimerSetInterruptService(TIMER0, _timer0CallBack, TimerRateMs(1000));
TimerEnable(TIMER0, true);
.
void TimerClrInterruptService (int timer)
 Clear the interrupt service for a timer.
void TimerSetSquareWave (int timer, U32 width, U32 period)
 TBD.
void TimerSetAsCounter (int timer)
 Period measure. Preset a timer to be used for elapsed time.
U32 TimerGetCounts (int timer)
 Return timer counts. Return the timer counts. Used for time measure.
// Init timer 0
TimerSetAsCounter(TIMER0);
TimerEnable(TIMER0, true);
U32 st = TimerGetCounts(TIMER0);    // Grab start time
// Do your process ...
U32 et = TimerGetCounts(TIMER0);    // Grab end time
printf("Elapsed time: %u mS\n", ElapsedTimeUs(st, et) / 1000);
.
void TimerEnable (int timer, bool ena)
 Timer enable. Enable or disable selected timer.
float CoreGetPeripheralClock ()
 Get peripheral clock as MHz. Return SCLCK frequency used by peripherals.
float CoreGetClock ()
 Get core clock as MHz. Return the CCLK frequency used by the core.
void WatchDogSetTimeout (U32 count)
 Preset watch dog timer. A software watchdog can improve system reliability by generating an event to the processor core if the watchdog expires before being updated by software. The 32-bit watchdog timer counts downward every SCLK cycle. If it becomes 0, an event requests can be issued (RESET).
void WatchDogEnable (bool enable)
 Enable or disable watch dog.
U32 ElapsedTime (U32 st, U32 et)
 Calculation of the elapsed time from the timer count values.
U32 ElapsedTimeUs (U32 st, U32 et)
 Calculation of the elapsed time from the timer count values.
U32 ElapsedTimeNs (U32 st, U32 et)
 Calculation of the elapsed time from the timer count values.
U32 TimerRateHz (double Hz)
 Calculates the count value of a timer to obtain the desired frequency (Hertz).
U32 TimerRateMs (double Ms)
 Calculates the count value of a timer to obtain the desired period (mS).
U32 TimerRateUs (double Us)
 Calculates the count value of a timer to obtain the desired period (uS).
void ElapsedTimeStart (int timer)
 starts the measurement of time (ms).
U32 ElapsedTimeEnd (int timer)
 Ends the measurement of time (ms).
U32 ElapsedTimeEndUs (int timer)
bool ElapsedTimeCheck (U32 target, int timer)
 Check if the "target" time has been reached.
bool ElapsedTimeCheckUs (U32 target, int timer)
 Check if the "target" time has been reached.
bool ElapsedTimeCheckUsMark (U32 target, int timer)
 Check if the "target" time has been reached and if it is done store a new value for next check.
void TimerDelayUs (int timer, U32 dly)
void LongTimerTick (U16 id)
U64 LongTimerTickValue (U16 id)
U64 LongTimerTickRead (U16 id)


Detailed Description

Version:
1.0.2
Author:
Manuele Turini
footer
otStudio - Library Reference - (C) 2020-23 Officina Turini, All Rights Reserved
Document built with Doxygen 1.4.0