jianhua5ok
发表于 2009-12-28 21:48:33
MARK一下,以后好好学习
sws222
发表于 2009-12-28 23:05:52
以后学习
yu_wen
发表于 2009-12-28 23:26:14
mark
lengmo
发表于 2009-12-28 23:45:11
记号
youxin2004
发表于 2009-12-29 09:14:48
顶楼主,加盖一层楼!
myworkmail
发表于 2009-12-29 14:37:57
记号
asdasd
发表于 2009-12-29 14:41:00
mark
hexixiaomao
发表于 2009-12-29 22:32:53
mark
duolunwei
发表于 2009-12-30 09:49:09
mark
html110
发表于 2009-12-30 10:19:22
记号
wangff2531
发表于 2009-12-30 10:28:56
有空慢慢看
xlshaoscu
发表于 2009-12-30 12:00:10
MARK
zhangliang
发表于 2009-12-30 12:32:49
学习.
yihongmeilang
发表于 2009-12-30 12:35:34
好东西学习
qilin3
发表于 2009-12-30 13:41:27
学习了~~
Dream_catcher
发表于 2009-12-30 14:56:59
学习学习
8410430
发表于 2009-12-30 17:30:37
好贴
haeha
发表于 2009-12-30 18:25:03
mark
ilovezeno
发表于 2009-12-30 18:49:06
mark!
bluejay
发表于 2009-12-30 20:30:51
MARK
ringan865
发表于 2009-12-30 21:26:05
mark
twd3621576
发表于 2009-12-30 23:17:18
很好要是有 傻孩子 的调度器功能就更完美了
cinderellah
发表于 2009-12-31 07:39:25
爪~
start00
发表于 2009-12-31 08:47:37
爪爪爪
mydows
发表于 2009-12-31 10:03:34
好!回去好好分析
xiaoniu
发表于 2009-12-31 10:52:07
mark会火
gan1211
发表于 2010-1-2 22:57:31
学习中
dreampet
发表于 2010-1-11 09:30:27
不错,上个月标记了下,今天仔细看完了,再次感谢各位高手哈
175891641
发表于 2010-1-11 10:00:37
定,学习
使用指针和结构体,感觉就是不一样。C语言就上一个档次
411412
发表于 2010-1-11 10:24:17
记号下。
avrdo
发表于 2010-1-11 14:36:05
说实话小弟学艺精,暂时无法理解,先MARK,后细品!
Soul.art
发表于 2010-1-11 15:12:16
mark
7120223
发表于 2010-1-11 16:05:33
好东西哦 但是没看懂
ddaitt999
发表于 2010-1-11 20:54:17
此贴必火
D.lovers
发表于 2010-1-11 23:12:59
mark
likunpeng
发表于 2010-1-11 23:26:29
马
more
发表于 2010-1-11 23:46:31
先Mark,慢慢学。
beixue
发表于 2010-1-12 09:42:14
mark
logic.pn
发表于 2010-1-12 23:10:25
mark
lou0908
发表于 2010-1-12 23:14:15
MARK一下,谢谢。
jiangping_hbhm
发表于 2010-2-7 23:36:41
MARK
snail0204
发表于 2010-2-8 09:03:26
好帖
ottife
发表于 2010-2-8 11:20:59
mark
MCU678
发表于 2010-2-8 12:26:00
mark
eagle2006
发表于 2010-2-8 15:27:55
有时间得好好学习下
lin2266286
发表于 2010-2-8 16:02:52
暂时无法理解,先MARK,慢慢学。
xczxwy
发表于 2010-2-8 16:25:26
一直都是这么干的,呵呵
waking
发表于 2010-2-8 20:18:08
mark
more
发表于 2010-2-9 02:27:08
mark
C307
发表于 2010-2-9 08:28:18
此贴必火
hy317
发表于 2010-2-9 09:01:05
mark
hongyancl
发表于 2010-2-9 10:00:13
回复【楼主位】xpstudio2003 曹香鹏
-----------------------------------------------------------------------
mark
bkkman
发表于 2010-2-9 11:35:42
mark
jiangping_hbhm
发表于 2010-2-12 13:20:06
mark
armfans
发表于 2010-2-12 18:31:30
mark
hetao7241
发表于 2010-2-12 18:45:18
标记一下。
haeha
发表于 2010-2-12 20:19:05
mark
bj-stm8
发表于 2010-2-12 20:48:29
这个一定要顶,摸索中前进
a___________a
发表于 2010-2-12 21:18:17
mark
DIDADI
发表于 2010-2-12 21:23:41
标记一下,要学习。
Jigsaw
发表于 2010-2-13 00:28:16
一蝶引得万花开
liqu
发表于 2010-2-13 17:19:28
哲学是软件的灵魂。一个好的架构必然可包罗万象,也必然回归哲学,回归自然之道。
ajin505
发表于 2010-2-13 19:04:54
记号一下
bluelool
发表于 2010-2-14 13:43:28
mark
elsonx
发表于 2010-2-14 22:40:04
mark
dujun168
发表于 2010-2-19 23:35:52
先MARK,后细品!
xieguangye
发表于 2010-2-20 10:13:12
谢谢 MARK
C307
发表于 2010-2-20 11:59:37
顶,此贴必火
jjw6806
发表于 2010-2-20 15:36:56
好久没有mark了,我也mark一下
esdart
发表于 2010-2-20 17:22:12
Mark 界面。留着慢慢看。
tom030704
发表于 2010-2-20 18:27:35
好贴!
gxy508
发表于 2010-2-21 14:20:46
mark
bitant
发表于 2010-2-26 12:20:12
学习一下,我也用过状态机循环,不过还有精简。
moon0213
发表于 2010-3-17 10:35:14
mark
ytmkkk1986
发表于 2010-3-17 13:57:54
mark
XQGG
发表于 2010-3-17 14:05:47
biao ji.....
twlkzxy
发表于 2010-3-17 22:45:22
正是我要找的这方面的资料 明天好好看下
win100
发表于 2010-3-17 23:32:26
标记
luweixuan
发表于 2010-3-18 01:00:40
学习
xcodes
发表于 2010-3-18 08:47:03
鉴定一下
截至目前为止
楼主的菜单属于最基本类型的
9楼jim166783 的比楼主位高了个等级
22楼liuweiele25楼 Si_Bin 属于 牛逼之人
9楼跟 22楼25楼 没什么距离
不对30楼山孩子的代码做任何评论
57楼avr-arm 光芒嵌入式
的代码索引机制,处理的有点麻烦,仍有改进的余地
61楼 erxun 老孟的那么多if,不看好
Gorgon_Meducer
发表于 2010-3-18 10:04:25
to 【179楼】 xcodes
还希望你说说想法和意见哈。也许我提供的信息量的确不足。不过讨论的过程中
问题本身才会丰满和具体起来。
orange2348
发表于 2010-3-18 11:19:30
学习
xcodes
发表于 2010-3-18 12:22:12
我的是基本上和《一个占用内存极小的菜单的实现》是一样的
不过是改了下菜单结构
他的原来每级菜单要占用35字节
而我的则为11字节
如下:
typedef struct
{
uchar MenuIndex; //当前状态索引 1字节
void (*InitOperate)(void);//菜单初始化操作2字节
void (*KeyUpOperate)(void); //按Up键时 操作函数 2字节
void (*KeyDnOperate)(void); //按Dn键时 操作函数 2字节
void (*KeyEscOperate)(void);//按BackSpace键时 的操作函数 2字节
void (*KeyEtrOperate)(void);//按Enter键时转向的 操作函数 //2字节
}MenuStruct;
const MenuFSM[] PROGMEM ={
#ifdef MenuSleep
#define MenuSleepIndex 0
{\
MenuSleepIndex,(*MenuSleepInit),(*MenuSleepUp),\
(*MenuSleepDn),(*MenuSleepEsc),(*MenuSleepEtr)\
},
#endif
#ifdef MenuTop
#define MenuTopIndex 1
{ \
MenuTopIndex,(*MenuTopInit),(*MenuTopUp), \
(*MenuTopDn),(*MenuTopEsc),(*MenuTopEtr)\
},
#endif
……
}
void JumpToMenu(uchar Index,uchar FlashMode) //跳转到菜单
{
KeyFuncIndex = Index; //jump to Menu index 适用于MenuIndex 有序排列
PgmFun(KeyTab.InitOperate); //运行初始化函数
if(FlashMode){
GUI_Flash = FlashMode;
}
}
main()
{
……
switch(KEY){
case UP:
PgmFun(KeyTab.KeyUpOperate);
break;
case DN:
PgmFun(KeyTab.KeyDnOperate);
break;
case ESC:
PgmFun(KeyTab.KeyEscOperate);
break;
case ETR:
PgmFun(KeyTab.KeyEtrOperate);
break;
default:
break;
}
……
}
----------------------下面是个MenuTop的Demo----------
void MenuTopInit(void)
{
pMenu=memcpy_P(pMenu,&MenuTop,sizeof(Menu));
Item=0;
Where=0;
WDT_OFF();
BackLight_ON(); //如果有按键 背光 亮
AvrXSuspend(&task2Pid);
AvrXResume(&task4Pid);
}
void MenuTopUp(void) //Up键
{
myKeyUp();
}
void MenuTopDn(void) //Dn键
{
myKeyDn();
}
void MenuTopEsc(void) //退出
{
wdt_enable(WDTO_1S);
wdt_reset();
BackLight_OFF(); //背光 关
MENU_POP();
}
void MenuTopEtr(void) //Enter键
{
MENU_PUSH(); //备份菜单
switch(Item+Where)
{
case 0x00:
JumpToMenu(MenuViewIndex,0x01);
break;
case 0x01:
JumpToMenu(MenuSetsIndex,0x01);
break;
case 0x02:
case 0x03:
JumpToMenu(MenuPwdIndex,0x00);
break;
default:
break;
}
}
miminzhang
发表于 2010-3-18 12:34:07
顶顶!
xcodes
发表于 2010-3-18 12:38:51
回复【180楼】Gorgon Meducer 傻孩子
to 【179楼】 xcodes
还希望你说说想法和意见哈。也许我提供的信息量的确不足。不过讨论的过程中
问题本身才会丰满和具体起来。
-----------------------------------------------------------------------
我之所以评价他们的 是因为我是过来人了
他们的几种方法我都用过了,知道哪种较好
我还没达到你的编程水平 不敢妄谈
xjf20072608
发表于 2010-3-18 12:40:17
mark
god-father
发表于 2010-3-18 15:30:57
每次用不同结构做不同产品 总有 路漫漫其修远兮 之感
Gorgon_Meducer
发表于 2010-3-18 17:56:51
to 【184楼】 xcodes
谦虚了……
其实,关于菜单,我想说说我最近的体会。也许大家和我一样,从
很久以前就开始想找到一种比较好的结构,解决菜单的问题。我本人也
比较喜欢找所谓的“通用框架”。然而,最近我渐渐意识到,很多时候,
当你已经能够熟练运用各种技巧,并根据实际需求便写代码的时候,追
求通用构架,往往让你气喘吁吁而难以自满。因为通用本身就和“嵌入
式”这个大前提相抵触地。
嵌入式,可以简单的解释为:面向应用需求的最小化裁减。
结果我们却在找什么菜单或GUI的通用结构……
也许,自己写的库函数能提高开发的速度。不过,应该意识到,对
自己的库进行分类,面向不同级别的系统,使用不同级别的库才是正确
的。
很多时候……我发现,写库或者构架……有点傻……特别是看到XX
公司的XX Framework。不由得感叹:
Easy for coding ,but hard to debug
Easy to write a demo, but hard to make a application
So what it is ?
mcu_lover
发表于 2010-3-18 22:49:45
回复【187楼】Gorgon Meducer 傻孩子
to 【184楼】 xcodes
谦虚了……
其实,关于菜单,我想说说我最近的体会。也许大家和我一样,从
很久以前就开始想找到一种比较好的结构,解决菜单的问题。我本人也
比较喜欢找所谓的“通用框架”。然而,最近我渐渐意识到,很多时候,
当你已经能够熟练运用各种技巧,并根据实际需求便写代码的时候,追
求通用构架,往往让你气喘吁吁而难以自满。因为通用本身就和“嵌入
式”这个大前提相抵触地。
嵌入式,可以简单的解释为:面向应用需求的最小化裁减。
结果我们却在找什么菜单或GUI的通用结构……
也许,自己写的库函数能提高开发的速度。不过,应该意识到,对
自己的库进行分类,面向不同级别的系统,使用不同级别的库才是正确
的。
很多时候……我发现,写库或者构架……有点傻……特别是看到XX
公司的XX Framework。不由得感......
-----------------------------------------------------------------------
目前还处于研究通用框架阶段,傻孩子大侠是过来人。呵呵,有机会,给我们这些菜鸟多普及一下嘛。谢谢了。
傻孩子大侠,感觉你太高深莫测了。
snaky
发表于 2010-3-19 10:53:30
好贴,mark~~~~~~~~·
guhenggao
发表于 2010-3-19 11:51:01
mark
WOTASOM
发表于 2010-3-20 13:29:29
学习...
pish
发表于 2010-3-20 13:43:47
MARK,,ding..
yangxiaowen
发表于 2010-3-22 20:47:10
mark
hecb999
发表于 2010-3-22 22:12:25
学习
ljt8015
发表于 2010-3-23 09:36:12
mark!~~
xgl_1982
发表于 2010-3-23 09:59:42
好贴留名
xjmlfm1
发表于 2010-3-23 11:08:00
mark
gxy508
发表于 2010-3-23 12:57:35
mark
tota2004
发表于 2010-3-26 13:27:54
正点