OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5433|回复: 6

请教原子大哥,这个函数该如何分析?

[复制链接]

2

主题

3

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2013-4-4
在线时间
0 小时
发表于 2014-10-20 08:11:13 | 显示全部楼层 |阅读模式
5金钱
void vLedTest(void)
{
static SCH_UINT8 SchLc=0; switch(SchLc){ case 0:

while(1)
{

{SchLc=__LINE__;pCurTCB->TimeCounter=Ticks;}return ;case __LINE__:

}

 ;}; SchLc=0;

}

最佳答案

查看完整内容[请看2#楼]

void vLedTest(void) {     static SCH_UINT8 SchLc=0;      switch(SchLc)     {          case 0:         while(1)         {             {   ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2014-11-7
在线时间
1 小时
发表于 2014-10-20 08:11:14 | 显示全部楼层
void vLedTest(void)
{
    static SCH_UINT8 SchLc=0; 
    switch(SchLc)
    { 
        case 0:
        while(1)
        {
            {
                SchLc=__LINE__;
                pCurTCB->TimeCounter=Ticks;
            }
        return ;

        case __LINE__:
        };
    }; 
    SchLc=0; 


应该这样理解:
函数被调用时,SchLc的初值被赋为0,直到执行完pCurTCB->TimeCounter=Ticks;的时候,SchLc就标志成_LINE_,然后return退出此函数。但如果这函数下次被调用,SchLc的标志是_LINE_,所以就直接跳过pCurTCB->TimeCounter=Ticks;,把SchLc重置成0后退出函数。

其实就是,这个函数多次被调用的话,一次执行pCurTCB->TimeCounter=Ticks;,另一次不执行,按照这个规律走。
回复

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2014-10-20 09:30:22 | 显示全部楼层
你这格式 弄的太乱了!
回复

使用道具 举报

2

主题

3

帖子

0

精华

新手入门

积分
31
金钱
31
注册时间
2013-4-4
在线时间
0 小时
 楼主| 发表于 2014-10-20 09:31:27 | 显示全部楼层
就是这种格式啊,我这是看别人的程序就是这么写的啊
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-10-20 19:43:11 | 显示全部楼层
仿真一下,单步跟踪
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

7

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
235
金钱
235
注册时间
2013-7-19
在线时间
60 小时
发表于 2014-11-8 10:02:39 | 显示全部楼层
那这里的while(1)在这里起到什么作用啊,谢谢了
回复

使用道具 举报

0

主题

5

帖子

0

精华

新手上路

积分
29
金钱
29
注册时间
2014-11-7
在线时间
1 小时
发表于 2014-11-8 10:22:04 | 显示全部楼层
回复【6楼】aming882046:
---------------------------------
一般来说是作为死循环,但在这里几乎没用,感觉应该去掉。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 13:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表