jj.deng 发表于 2010-3-26 17:51:43

学习了!

feiyangbc 发表于 2010-3-29 17:29:26

强!

smartzou 发表于 2010-3-29 19:40:36

mark

lsw0136 发表于 2010-3-29 19:57:58

mark

zhoudandandan 发表于 2010-4-5 11:01:49

菜鸟学习中...

ddaitt999 发表于 2010-4-10 16:27:28

浏览全贴~~

iisi 发表于 2010-4-10 16:39:11

mark

chrise 发表于 2010-4-12 11:57:05

great

yusufu 发表于 2010-4-12 12:44:35

好贴,mark 了

xuetingxun2010 发表于 2010-4-17 18:35:37

学习了,正要到

xrwf_2009 发表于 2010-4-17 19:18:19

好东西就是不怕分享!

renjun861214 发表于 2010-5-19 16:23:31

好东西就是不怕分享!

weilan2200 发表于 2010-5-26 19:44:50

我也学习学习!

xrwf_2009 发表于 2010-5-28 20:24:04

值得顶

mcu_lover 发表于 2010-6-21 00:03:51

界面就是难。

mcu_lover 发表于 2010-6-21 00:41:43

看了很多天了,实在是看不出楼主的这个东西 设计简单,思路清晰。

wxx116zh 发表于 2010-6-21 07:49:58

mark

YL_L 发表于 2010-6-21 07:56:17

学习!

xinyou 发表于 2010-6-21 08:54:21

mark

zxq200211 发表于 2010-6-21 09:22:06

学习下

wukaka 发表于 2010-7-15 10:35:43

Gorgon Meducer 傻孩子
都赞了,一定要仔细精读

rfour 发表于 2010-7-15 11:24:40

mark 一下

super373 发表于 2010-7-15 11:40:14

mark 一下

yjtawfg 发表于 2010-7-15 11:42:28

mark

wuxi_stl 发表于 2010-7-15 11:44:51

mark

cjc2010 发表于 2010-7-15 13:08:31

mark

antonine 发表于 2010-7-15 14:58:22

mark

mountaintop 发表于 2010-7-15 17:46:28

回复【187楼】Gorgon Meducer 傻孩子

希望大家能接着就此问题讨论,我觉得有些东西还是写通用的驱动比较好,但菜单之类的东西,似乎花太多精力做个通用的结构性价比太低,而且每个项目选用的MCU又不同导致可用资源也不相同,因此未必能方便地移植。

yanxiao1227 发表于 2010-7-15 19:58:22

不错。我们一直在用,单片机太慢,搞gui有点吃力,以后考虑换ARM吧

esdart 发表于 2010-7-15 20:47:39

标记一下。

liujing0146 发表于 2010-7-15 20:57:49

mark

smset 发表于 2010-7-16 11:29:12

呵呵,这种模式,就是protothread的原型。

smset 发表于 2010-7-16 12:08:47

//注: __LINE__ ,是代码行号

unsigned char ThreadExample()
{      
//--------一些准备工作,把这个简记为 __BEGINJOB宏
    static unsigned short lineno=0;
    char YIELD_FLAG = 1;
    switch(lineno) {
    case 0:
//---------------------------------_BEGINJOB--------

//-----------记录这里的位置,并退出,把这块简记为__YIELDCPU宏,表示释放CPU-------   
    YIELD_FLAG = 0;
    lineno = __LINE__; case __LINE__:
    if (YIELD_FLAG ==0) return RUNNING;                       
//----------------------------------------------

    dosomethingA();
   

//-----------记录这里的位置,并退出,把这块简记为__YIELDCPU宏,表示释放CPU-------   
    YIELD_FLAG = 0;
    lineno = __LINE__; case __LINE__:
    if (YIELD_FLAG ==0) return RUNNING;                       
//----------------------------------------------

    dosomethingB();

//-----------记录这里的位置,并退出,把这块简记为__YIELDCPU宏,表示释放CPU-------   
    YIELD_FLAG = 0;
    lineno = __LINE__; case __LINE__:
    if (YIELD_FLAG ==0) return RUNNING;                       
//----------------------------------------------

    dosomethingC();

//------------------结束工作,把这块简记为__ENDJOB-----------
    YIELD_FLAG = 0;
    lineno=0;
    return ENDED;
   }
//------------------__ENDJOB-----------
}



//经过简化后的形态:

unsigned char ThreadExampleA()
{      
_BEGINJOB;


   __YIELDCPU;

   dosomethingA();

   __YIELDCPU;

   dosomethingB();

   __YIELDCPU;

   dosomethingC();

   
__ENDJOB;
}


void main(){
while(1){
ThreadExampleA();
ThreadExampleB();
ThreadExampleC();
ThreadExampleD();
}
}

这样,在任务函数里,只要想主动释放CPU控制,就   __YIELDCPU一下即可。实际上延时函数可以基于__YIELDCPU之上构建,就是增加一些定时器计数的条件而已。

smset 发表于 2010-7-16 12:21:47

而且主动释放CPU控制的时候,实际上又记忆了释放时所在行,下次进入函数体,又可以从上次释放的地方继续运行。

等于是用行号__LINE__,代替了自己去定义状态机的状态。

__LINE__行号,就是一种状态。

myworkmail 发表于 2010-7-16 15:12:43

mark

xueyingmixin 发表于 2010-7-16 15:50:16

mark

hpdell 发表于 2010-7-17 17:45:31

复杂!!!!!!!!!!

5w1h 发表于 2010-7-17 19:04:47

mark

huilai 发表于 2010-7-17 19:38:14

学习!

tangwei039 发表于 2010-7-17 20:02:49

好。记下

lovecsu 发表于 2010-7-19 17:40:42

先mark再说

dianqing 发表于 2010-7-19 17:55:25

哈哈。。。好强大!

tingfenghu 发表于 2010-7-21 13:20:59

mark

waking 发表于 2010-7-22 16:56:40

mark

wangff2531 发表于 2010-7-22 21:28:38

MARK

wxx116zh 发表于 2010-7-23 08:25:11

mark

kenluo 发表于 2010-8-3 17:22:50

不错

cargle 发表于 2010-8-3 18:13:51

mark

zachary0101 发表于 2010-8-4 20:49:44

mark GUI

rayingpx 发表于 2010-8-4 21:26:05

mark

chenxikeng 发表于 2010-8-5 16:25:54

顶顶~~!

bluelool 发表于 2010-8-5 17:57:07

mark

zhuhong 发表于 2010-8-5 18:59:46

whhityang 发表于 2010-8-23 14:34:58

正好用到,标记

guxingganyue 发表于 2010-9-4 08:45:29

mark

eastbest 发表于 2010-9-4 09:05:31

mark

weiwdr05 发表于 2010-9-4 09:17:42

mark

peavey 发表于 2010-11-22 08:39:23

记认

ndust 发表于 2010-11-22 10:27:56

jh

mrcontrol 发表于 2010-11-22 11:03:56

mark

wenfeiexe 发表于 2010-11-22 11:13:46

cool

MA_J 发表于 2010-11-23 15:06:45

MARK

andrew_dj 发表于 2010-11-23 20:43:03

学习啦

gc56198 发表于 2010-11-23 21:33:04

mark!!!!!

Think_lx 发表于 2010-11-23 22:01:23

标记

myqiang1990 发表于 2010-11-23 22:58:42

楼主的编程风格和我差不多啊。。我也是这样写程序的。。。你和我一样喜欢用switch。。。哈哈。。。

zhujlong 发表于 2010-11-23 23:22:30

貌似写过~~~

ndt2000 发表于 2010-11-23 23:22:38

标记

edaworld 发表于 2010-12-11 17:10:11

mARK

Elderfox 发表于 2010-12-11 20:16:37

回复【楼主位】xpstudio2003 山东人在深圳
-----------------------------------------------------------------------

MARK

AG17 发表于 2010-12-11 20:18:07

mark

bj-stm8 发表于 2010-12-11 21:11:56

good

ndt2000 发表于 2010-12-11 23:24:51

mark

wpnx 发表于 2010-12-14 16:33:07

mark

xuejianhua1986 发表于 2010-12-14 20:48:07

mark

sponge 发表于 2010-12-16 10:37:21

mark

stm8s 发表于 2010-12-16 12:34:31

mark

Shi_Tou 发表于 2010-12-16 12:50:48

回复【楼主位】xpstudio2003 山东人在深圳
-----------------------------------------------------------------------

有空得看看!

Shi_Tou 发表于 2010-12-16 12:53:48

回复【4楼】Gorgon Meducer 傻孩子
-----------------------------------------------------------------------


高手啊!值得学习啊!

AilesArgentees 发表于 2010-12-16 12:59:35

mark

updown 发表于 2010-12-17 13:43:18

MARK

zhanghzhan 发表于 2010-12-17 14:12:52

吗日寇

ctunan 发表于 2010-12-17 14:21:19

装泰鸡,马克思~~~

dory 发表于 2010-12-17 15:47:12

不错,学习!!!

chengpiaopiao 发表于 2010-12-17 21:03:40

mark

stely 发表于 2010-12-17 21:32:54

mark

8s209 发表于 2010-12-18 10:43:36

mark

du722 发表于 2011-1-8 14:02:40

mark

Tomas_Yung 发表于 2011-1-9 10:57:39

mark

MeSleve 发表于 2011-1-9 12:43:17

mark。学习了

416446891 发表于 2011-1-9 21:08:30

mark

JnzGoto 发表于 2011-1-9 22:25:52

mark

pengliang983 发表于 2011-1-9 22:34:57

mark学习

yuzr 发表于 2011-1-10 16:29:39

这个要仔细研究一下

zuceyige 发表于 2011-1-10 17:21:31

mark一下!

anning 发表于 2011-1-10 18:10:32

Mark

Ticl4 发表于 2011-1-10 20:19:27

学习了

dalchemist 发表于 2011-1-10 20:36:11

mark(状态机)

xixiangfeng 发表于 2011-1-10 20:48:57

好贴!!

myljd01 发表于 2011-1-10 21:13:29

状态机
页: 1 2 [3] 4 5 6
查看完整版本: 发一个裸机下的界面编写方式.,,不用结构体,,设计简单,思路清晰,没有死循环,,,,使用