From 4789bf619582970f35a5f6e90a4369b701776dc2 Mon Sep 17 00:00:00 2001 From: AlexShi Date: Thu, 25 Mar 2021 09:48:53 +0800 Subject: [PATCH] update rt-thread-version/rt-thread-standard/programming-manual/timer/timer.md. --- .../rt-thread-standard/programming-manual/timer/timer.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/rt-thread-version/rt-thread-standard/programming-manual/timer/timer.md b/rt-thread-version/rt-thread-standard/programming-manual/timer/timer.md index 4ce502c..f925f03 100644 --- a/rt-thread-version/rt-thread-standard/programming-manual/timer/timer.md +++ b/rt-thread-version/rt-thread-standard/programming-manual/timer/timer.md @@ -512,13 +512,15 @@ RT-Thread 定时器的最小精度是由系统时钟节拍所决定的(1 OS Ti #include void rt_hw_us_delay(rt_uint32_t us) { - rt_uint32_t delta; + rt_uint32_t tstart; /* 获得延时经过的 tick 数 */ us = us * (SysTick->LOAD/(1000000/RT_TICK_PER_SECOND)); /* 获得当前时间 */ - delta = SysTick->VAL; + tstart = SysTick->VAL; + /* 判断是否会溢出 */ + if (tstart < us) tstart += SysTick->LOAD; /* 循环获得当前时间,直到达到指定的时间后退出循环 */ - while (delta - SysTick->VAL< us); + while (tstart - SysTick->VAL < us); } ``` -- Gitee