12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- /*
- * @Author: jiejie
- * @Github: https://github.com/jiejieTop
- * @Date: 2019-12-10 22:16:41
- * @LastEditTime: 2020-04-27 22:35:34
- * @Description: the code belongs to jiejie, please keep the author information and source code according to the license.
- */
- #include "platform_timer.h"
- #include "FreeRTOS.h"
- #include "task.h"
- static uint32_t platform_uptime_ms(void)
- {
- //#if (configTICK_RATE_HZ == 1000)
- #if 1
- return (uint32_t)xTaskGetTickCount();
- #else
- TickType_t tick = 0u;
- tick = xTaskGetTickCount() * 1000;
- return (uint32_t)((tick + configTICK_RATE_HZ - 1) / configTICK_RATE_HZ);
- #endif
- }
- void platform_timer_init(platform_timer_t* timer)
- {
- timer->time = 0;
- }
- void platform_timer_cutdown(platform_timer_t* timer, unsigned int timeout)
- {
- timer->time = platform_uptime_ms();
- timer->time += timeout;
- }
- char platform_timer_is_expired(platform_timer_t* timer)
- {
- return platform_uptime_ms() > timer->time ? 1 : 0;
- }
- int platform_timer_remain(platform_timer_t* timer)
- {
- uint32_t now;
- now = platform_uptime_ms();
- if (timer->time <= now) {
- return 0;
- }
- return timer->time - now;
- }
- unsigned long platform_timer_now(void)
- {
- return (unsigned long) platform_uptime_ms();
- }
- void platform_timer_usleep(unsigned long usec)
- {
- TickType_t tick;
- if(usec != 0) {
- tick = usec / portTICK_PERIOD_MS;
-
- if (tick == 0)
- tick = 1;
- }
- vTaskDelay(tick);
- }
|