OpenEdv-开源电子网

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

求大神指教这个程序得执行流程

[复制链接]

30

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
236
金钱
236
注册时间
2013-11-14
在线时间
7 小时
发表于 2015-3-11 16:44:03 | 显示全部楼层 |阅读模式
5金钱
#define WaitX(tickets)  do {_lc=(__LINE__+((__LINE__%256)==0))%256; return tickets ;} while(0); case (__LINE__+((__LINE__%256)==0))%256: 

unsigned char task0(){
static unsigned char _lc=0;
 switch(_lc)
 {
default: 
while(1)
{
WaitX(50);
LED0=!LED0;   
};
 }; 
 _lc=0; 
 return 255;
}

最佳答案

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

楼主先把宏定义替换掉,就清晰多了.
学海无涯,回不了头!!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-3-11 16:44:04 | 显示全部楼层
楼主先把宏定义替换掉,就清晰多了.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165371
金钱
165371
注册时间
2010-12-1
在线时间
2110 小时
发表于 2015-3-11 16:44:04 | 显示全部楼层
回复【6楼】电子小手:
---------------------------------
主要是:__LINE__,这玩意是一个宏,返回当前行的行数,如:
#include <stdio.h>
int main()
{
printf("%d\n",__LINE__); //打印4
return 0 ;
}
你用一个特定的数字,代替它即可.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

21

主题

2205

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5136
金钱
5136
注册时间
2014-8-26
在线时间
1316 小时
发表于 2015-3-11 17:45:54 | 显示全部楼层
代码看着有点乱
重新粘贴下
回复

使用道具 举报

30

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
236
金钱
236
注册时间
2013-11-14
在线时间
7 小时
 楼主| 发表于 2015-3-12 09:21:07 | 显示全部楼层
代码如下,这是在网上看到的,用pt思想写的一个调度器,就是不太看得明白


学海无涯,回不了头!!
回复

使用道具 举报

70

主题

6756

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12975
金钱
12975
注册时间
2012-11-26
在线时间
3786 小时
发表于 2015-3-12 09:25:23 | 显示全部楼层
不太看明白,貌似这个调度器是记录程序行数,然后切换过来的,contiki是这样的思想
学无止境
回复

使用道具 举报

30

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
236
金钱
236
注册时间
2013-11-14
在线时间
7 小时
 楼主| 发表于 2015-3-12 09:27:01 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
这是替换过后的,还是不太看得明白
unsigned char task0(){
static unsigned char _lc=0;
 switch(_lc)
 {
 default: 
while(1)
{
do {_lc=(__LINE__+((__LINE__%256)==0))%256; return tickets ;} while(0); 
case (__LINE__+((__LINE__%256)==0))%256: 
LED0=!LED0;   
};
 }; 
 _lc=0; 
 return 255;
}
学海无涯,回不了头!!
回复

使用道具 举报

30

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
236
金钱
236
注册时间
2013-11-14
在线时间
7 小时
 楼主| 发表于 2015-3-12 09:28:00 | 显示全部楼层
回复【5楼】jermy_z:
---------------------------------
是的,我也不太看得明白,是在阿莫上面看到的,这个是用pt的思想来写的一个调度器
学海无涯,回不了头!!
回复

使用道具 举报

30

主题

75

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
236
金钱
236
注册时间
2013-11-14
在线时间
7 小时
 楼主| 发表于 2015-3-13 16:11:56 | 显示全部楼层
回复【8楼】正点原子:
---------------------------------
谢谢
学海无涯,回不了头!!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-2-23 18:32

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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