Vx中有一个延时函数没看懂

2019-07-15 13:12发布

for (stop = start = tickGet (); start == stop; start = tickGet ())
                                ; /* wait for clock turn over */
这句是什么意思,在我理解看来就是延迟了几行代码而已?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
zhifubao
1楼-- · 2019-07-15 17:01
延时小于等于1个tick。 最佳答案
创世之枪
2楼-- · 2019-07-15 20:41
完整函数如下
void ADT_L0_CALL_CONV ADT_L0_msSleep(ADT_L0_UINT32 msDelay)
{
        static int delayLoop = 0;
        int ix;
        int iy;
        int maxLoop;
        int start;
        int stop;
        int mpt; /* microsecs per tick */

        msDelay = msDelay*1000; /* Convert input to usec*/

        if (delayLoop == 0 || msDelay == 0xffffffff) /* need calibration? Run first time only when delayLoop=0 */
        {
                start = 0;
                stop = 0;
                mpt = (1000 * 1000) / sysClkRateGet (); /* microsecs per tick */
   
                for (delayLoop = 1; delayLoop < 0x1000 && stop == start; delayLoop<<=1)
                {
                        for (stop = start = tickGet (); start == stop; start = tickGet ())
                                ; /* wait for clock turn over */
   
                        ADT_L0_msSleep(mpt/1000); /* single recursion */
                        stop = tickGet ();
                }

                maxLoop = delayLoop / 2; /* loop above overshoots */

                start = 0;
                stop = 0;
                if (delayLoop < 4)
                        delayLoop = 4;
   
                for (delayLoop /= 4; delayLoop<maxLoop && stop == start; delayLoop++)
                {
                        for (stop = start = tickGet (); start == stop; start = tickGet ())
                                ; /* wait for clock turn over */
   
                        ADT_L0_msSleep(mpt/1000); /* single recursion */
                        stop = tickGet ();
                }
        }

        /* Main delay loop after calibration above*/
        for (iy = 0; iy < msDelay; iy++)
        {
                for (ix = 0; ix < delayLoop; ix++);
        }
}
阳光的偏爱
3楼-- · 2019-07-15 21:59
给你踩踩,,,过来瞅瞅。。。(*^__^*) 嘻嘻……
创世之枪
4楼-- · 2019-07-16 01:19
阳光的偏爱 发表于 2016-8-23 13:27
给你踩踩,,,过来瞅瞅。。。(*^__^*) 嘻嘻……

....
阳光的偏爱
5楼-- · 2019-07-16 04:24
 精彩回答 2  元偷偷看……

一周热门 更多>