mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2025-03-15 07:29:15 +01:00
Pios Delay: Add function for measuring time difference between two cycle counts
This commit is contained in:
parent
b3b4fcd007
commit
1d1f351233
@ -148,6 +148,25 @@ uint32_t PIOS_DELAY_GetuSSince(uint32_t t)
|
||||
return (PIOS_DELAY_GetuS() - t);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get the raw delay timer, useful for timing
|
||||
* @return Unitless value (uint32 wrap around)
|
||||
*/
|
||||
uint32_t PIOS_DELAY_GetRaw()
|
||||
{
|
||||
return DWT_CYCCNT;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Compare to raw times to and convert to us
|
||||
* @return A microsecond value
|
||||
*/
|
||||
uint32_t PIOS_DELAY_DiffuS(uint32_t raw)
|
||||
{
|
||||
uint32_t diff = DWT_CYCCNT - raw;
|
||||
return diff / us_ticks;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@ -138,6 +138,35 @@ uint32_t PIOS_DELAY_GetuS()
|
||||
return DWT_CYCCNT / us_ticks;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Calculate time in microseconds since a previous time
|
||||
* @param[in] t previous time
|
||||
* @return time in us since previous time t.
|
||||
*/
|
||||
uint32_t PIOS_DELAY_GetuSSince(uint32_t t)
|
||||
{
|
||||
return (PIOS_DELAY_GetuS() - t);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Get the raw delay timer, useful for timing
|
||||
* @return Unitless value (uint32 wrap around)
|
||||
*/
|
||||
uint32_t PIOS_DELAY_GetRaw()
|
||||
{
|
||||
return DWT_CYCCNT;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Compare to raw times to and convert to us
|
||||
* @return A microsecond value
|
||||
*/
|
||||
uint32_t PIOS_DELAY_DiffuS(uint32_t raw)
|
||||
{
|
||||
uint32_t diff = DWT_CYCCNT - raw;
|
||||
return diff / us_ticks;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@ -38,6 +38,8 @@ extern int32_t PIOS_DELAY_WaituS(uint32_t uS);
|
||||
extern int32_t PIOS_DELAY_WaitmS(uint32_t mS);
|
||||
extern uint32_t PIOS_DELAY_GetuS();
|
||||
extern uint32_t PIOS_DELAY_GetuSSince(uint32_t t);
|
||||
extern uint32_t PIOS_DELAY_GetRaw();
|
||||
extern uint32_t PIOS_DELAY_DiffuS(uint32_t raw);
|
||||
|
||||
#endif /* PIOS_DELAY_H */
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user