系统节拍配置宏 configTICK_RATE_HZ, 即1S能跳动多少下,
软件定时器的运作机制.
FreeRTOS 采用两个定时器列表维护软件定时器, pxCurrentTimerList 与 pxOverflowTimerList是列表指针, 在初始化的时候分别指向 xActiveTimerList1 与 xActiveTimerList2
pxCurrentTimerList: 系统将新创建的定时器以超时时间升序的方式插到 此链表中, 系统在定时任务中扫描 此链表的第一个定时器查看是否已经超时, 如果已经超时则调用软件定时器的回调函数, 否则将定时器任务挂起, 因为第一个定时任务还没超时, 后面的定时任务就不会超时,
pxOverflowTimerList 列表是在软件定时器溢出的时候使用,作用与pxCurrentTimerList
软件定时器创建函数
xTimerCreate() 动态分配,
xTimeCreateStatic() 静态分配的,
软件定时器在创建成功后是处于休眠状态, 可以使用
xTimerStart()、xTimerReset()、
xTimerStartFromISR() 、 xTimerResetFromISR() 、 xTimerChangePeriod() 和
xTimerChangePeriodFromISR()这些函数将其状态转换为活跃态。
软件定时器启动函数
xTimerStart() 可以让处于休眠的定时器开始工作.
xTimerStartFromISR() 启动软件定时器, 在中断中
软件定时器停止函数
xTimerStop() 要使用该函数 ,就需要把 configUSE_TIMERS 宏定义为1;
xTimerStopFromISR() 这是停止定时器的中断版本
软件定时器任务
软件定时器任务 是在 系统开始调度的时候 vTaskStartScheduler() 创建的的.前提是 将 configUSE_TIMERS 开启
定时器任务的优先级 由 configTIMER_TASK_PRIORITY 这个宏来决定
软件定时器删除函数 xTimerDelete()