搜索
bottom↓
楼主: liandao

一个占用内存极少的菜单系统的实现

  [复制链接]

出0入0汤圆

发表于 2008-1-26 15:08:27 | 显示全部楼层
不错,可以学习一下。谢谢。

出0入0汤圆

发表于 2008-1-27 06:11:48 | 显示全部楼层
好东西

出0入0汤圆

发表于 2008-1-28 13:46:02 | 显示全部楼层
xuepeng2000
我想有用的东西,自己一个人放着在电脑里,N年以后也可能变成占空间的垃圾文件,或者别人用的上这份代码呢
我不得不佩服楼主的想法,如果都像楼主这样,中国的技术还能落后吗?
现在我觉得搞技术的都套在自己的套子里,每一次开发,都是一个新的过程
不如像楼主说的:或者别人用的上这份代码呢  


这位仁兄说得一点都不错,就是这样。如果大家都能把一些不是最新技术共享出来,那肯定很好,如果最新技术那得小心,公司可能会找你麻烦。呵呵

出0入0汤圆

发表于 2008-1-28 14:09:17 | 显示全部楼层
顶楼主!

出0入0汤圆

发表于 2008-1-28 18:48:16 | 显示全部楼层
很好的资料.顶!!!

出0入0汤圆

发表于 2008-1-28 19:37:51 | 显示全部楼层
顶起来,很详细,不知是什么硬件

出0入0汤圆

发表于 2008-1-28 19:39:35 | 显示全部楼层
啊,是51系列吧,没用过,但文档确实牛

出0入0汤圆

发表于 2008-1-29 16:23:45 | 显示全部楼层
好东西!

出0入0汤圆

 楼主| 发表于 2008-1-29 16:47:49 | 显示全部楼层
1.项目起源于51,但纯C的代码,又没有太多跟编译器有关的内容,挪用移植很简单的呀。我就是很快从51挪到一个ARM的平台上的。
2.知道分寸,其实这些内容并非工作时做的,我做这些的时候还没有完全毕业。也知道工作期间的东西就要留心是否可以公开了,因为公司付了薪水给我们做开发,公开的话需要公司同意/允许的

出0入0汤圆

发表于 2008-2-3 09:56:55 | 显示全部楼层
楼主:我看你的 一个占用内存极少的菜单系统的实现.pdf  第8页 ,讲有关menunameID值的变化,我觉得你这里说的不是很清楚。首先你该让我们知道menunameID 索引号是定义成什么类型的变量?
menunameID+1,menunameID+2.。。。执行后你说索引号变了,而我们习惯性认为执行menunameID+1函数后,认为menunameID本身的值不会变。我又找了你的源程序关于menuname的函数,没找到。
     所以我现在也不是很清楚你的意思。你的文档写的是不错,请你再详细点好么?像我这样的初学者,没什么基础水平,你说的“FSM”是什么意思也不知道。

出0入0汤圆

发表于 2008-2-3 23:16:36 | 显示全部楼层
牛B,顶一下!

出0入0汤圆

 楼主| 发表于 2008-2-5 13:08:44 | 显示全部楼层
TO :yulutong 土土狗
   文档确实有可能跟代码对不上的,因为文档书写和代码规范化经过了很长的的时间.
   1.FSM =  Finite state machine  有限状态机
   2.menunameID在文档中没有出现过,出现的是MenuNameInit_ID其实就是本层菜单的ID索引号,仅仅是个数字
在menu.H中
//如下定义从KeyTab中得到
//调整KeyTab时必须更新如下的定义
//否则菜单链接出错!
#define MenuTopIndex       0
#define MenuIndex          5
#define MenuFuncIndex     10
#define MenuParaIndex     15
#define MenuLanguageIndex 20
#define MenuMeasureIndex  25

#define MenuDataIndex     30
-----------------------------------
比如MenuFuncIndex     是 10 在_CONST_ KbdTabStruct KeyTab[]={中是如下这段:
       {10,11,12,13,14,(*DispMenuFuncInit)}, //"功能"
       {11, 0, 0, 0, 0,(*DispMenuFuncUp)},   //
       {12, 0, 0, 0, 0,(*DispMenuFuncDown)}, //
       {13, 0, 0, 0, 0,(*DispMenuFuncLeft)}, //
       {14, 0, 0, 0, 0,(*DispMenuFuncRight)},//

3.如果觉得基础不够,请自己补. 我的文档是假定你已经搞过单片机,搞过液晶显示...

出0入0汤圆

发表于 2008-2-21 00:20:20 | 显示全部楼层
粗看了下觉得很有用,有时间下来慢慢研究!!

出0入0汤圆

发表于 2008-2-21 09:24:50 | 显示全部楼层
非常不错,有空好好学习一下,谢谢!!!!!!!!!!!

出0入0汤圆

发表于 2008-2-21 11:11:34 | 显示全部楼层
ku

出0入0汤圆

发表于 2008-2-21 11:28:01 | 显示全部楼层
.

出0入0汤圆

发表于 2008-2-21 12:09:38 | 显示全部楼层
ding

出0入0汤圆

发表于 2008-2-24 09:42:47 | 显示全部楼层
這個程序看起來的確是牛.所以在學習中,但是我用軟件仿真好象不行,漢字沒有顯示出來,只顯示如圖這樣的情況.樓主幫忙看看是什麼原因.
1

出0入0汤圆

发表于 2008-2-29 10:15:05 | 显示全部楼层
谢谢~先收下,仔细研究研究~

出0入0汤圆

发表于 2008-2-29 13:26:44 | 显示全部楼层
谢LZ的贡献了。。。先收着。

出0入0汤圆

发表于 2008-3-4 22:01:51 | 显示全部楼层
收藏

出0入0汤圆

发表于 2008-3-5 08:51:02 | 显示全部楼层
谢谢LZ!!

出0入0汤圆

发表于 2008-3-5 12:03:53 | 显示全部楼层
Tanks!

出0入0汤圆

发表于 2008-3-5 23:16:06 | 显示全部楼层
好东西啊,,谢谢了....

楼主真是大好人

出0入0汤圆

发表于 2008-3-6 00:23:00 | 显示全部楼层
记号

出0入0汤圆

发表于 2008-3-6 15:06:07 | 显示全部楼层
thanks a lot!

出0入0汤圆

发表于 2008-3-10 13:08:21 | 显示全部楼层
这样的贴子都不顶,还是人嘛

出0入0汤圆

发表于 2008-3-10 13:55:39 | 显示全部楼层
强!

出0入0汤圆

发表于 2008-3-20 00:01:47 | 显示全部楼层
强,留个记号

出0入0汤圆

发表于 2008-3-20 10:02:28 | 显示全部楼层
留个记号

出0入0汤圆

发表于 2008-3-20 15:56:26 | 显示全部楼层
嗯,留个记号

出0入0汤圆

发表于 2008-3-21 08:45:19 | 显示全部楼层
xiexie

出0入0汤圆

发表于 2008-3-21 11:44:48 | 显示全部楼层
留个记号

出0入0汤圆

发表于 2008-4-28 08:21:35 | 显示全部楼层
再来顶顶,这位高人怎么不来OURAVR了?

出0入0汤圆

发表于 2008-4-28 08:43:50 | 显示全部楼层

(原文件名:LCD_demo_2.jpg)


(原文件名:LCD_Demo_3.jpg)

点击此处下载 ourdev_261570.rar(文件大小:16K) (原文件名:MENU_Demo.rar)

出0入0汤圆

发表于 2008-4-28 12:41:05 | 显示全部楼层

出0入0汤圆

发表于 2008-5-2 18:36:46 | 显示全部楼层
好东西哦,谢谢啦

出0入0汤圆

发表于 2008-5-4 10:44:07 | 显示全部楼层
我用软件仿真进不了137楼的界面,奇怪;

出0入0汤圆

发表于 2008-5-4 12:36:35 | 显示全部楼层
强贴,顶。

出0入0汤圆

发表于 2008-5-4 12:50:06 | 显示全部楼层
【140楼】 wchp314
我用软件仿真进不了137楼的界面,奇怪;  
那是因为你思考的不够全面
memory modle要选 small

出0入0汤圆

发表于 2008-5-5 10:50:39 | 显示全部楼层
不错的东西,谢谢

出0入0汤圆

发表于 2008-5-5 12:15:37 | 显示全部楼层
刚也做了个菜单显示的程序,下载来看看.

出0入0汤圆

发表于 2008-5-7 14:49:11 | 显示全部楼层
文档写的还不够好,我看了好几天,还没有完全看懂。搞的我思维混乱,几次想放弃。目前也不会移植。

恰恰是最重要的有关移植的部分,讲的不够明白。整个文档,应该分成几章几节的,好让读者容易理解。

楼主好人做到底啊,再发个有关与移植的详细例程。谢谢。

出0入0汤圆

发表于 2008-5-7 20:55:42 | 显示全部楼层
顶,不顶都不行了

出0入0汤圆

发表于 2008-5-8 10:27:18 | 显示全部楼层
看了楼主的程序,受益菲浅,不过有点疑问,不知能否解答,就是这个菜单结构体中,函数前面为什么要加*号,按理来说应该不要加才对,请解答,谢谢!
_CONST_ KbdTabStruct KeyTab[]={
//       |-----------> Index
//       |  Up
//       |  |  Down
//       |  |  |  Left
//       |  |  |  |  Right   --->功能函数
//       |  |  |  |  |       |
       { 0, 1, 2, 3, 4,(*DispMenuTop)},// 待机画面
       { 1, 0, 0, 0, 0,(*DispMenuTopUp)},
       { 2, 0, 0, 0, 0,(*DispMenuTopDown)},
       { 3, 0, 0, 0, 0,(*DispMenuTopLeft)},
       { 4, 0, 0, 0, 0,(*DispMenuTopRight)},

       { 5, 6, 7, 8, 9,(*DispIcoMenuInit)}, //图标层菜单
       { 6, 0, 0, 0, 0,(*DispIcoMenuUp)},   //
       { 7, 0, 0, 0, 0,(*DispIcoMenuDown)}, //
       { 8, 0, 0, 0, 0,(*DispIcoMenuLeft)}, //
       { 9, 0, 0, 0, 0,(*DispIcoMenuRight)},//

       {10,11,12,13,14,(*DispMenuFuncInit)}, //"功能"
       {11, 0, 0, 0, 0,(*DispMenuFuncUp)},   //
       {12, 0, 0, 0, 0,(*DispMenuFuncDown)}, //
       {13, 0, 0, 0, 0,(*DispMenuFuncLeft)}, //
       {14, 0, 0, 0, 0,(*DispMenuFuncRight)},//

       {15,16,17,18,19,(*DispMenuParaInit)}, //"参数"
       {16, 0, 0, 0, 0,(*DispMenuParaUp)},   //
       {17, 0, 0, 0, 0,(*DispMenuParaDown)}, //
       {18, 0, 0, 0, 0,(*DispMenuParaLeft)}, //
       {19, 0, 0, 0, 0,(*DispMenuParaRight)},//

       {20,21,22,23,24,(*DispMenuLanguageInit)}, //"语言"
       {21, 0, 0, 0, 0,(*DispMenuLanguageUp)},   //
       {22, 0, 0, 0, 0,(*DispMenuLanguageDown)}, //
       {23, 0, 0, 0, 0,(*DispMenuLanguageLeft)}, //
       {24, 0, 0, 0, 0,(*DispMenuLanguageRight)},//


       {25,26,27,28,29,(*DispMenuMeasureInit)}, //"测量"
       {26, 0, 0, 0, 0,(*DispMenuMeasureUp)},   //
       {27, 0, 0, 0, 0,(*DispMenuMeasureDown)}, //
       {28, 0, 0, 0, 0,(*DispMenuMeasureLeft)}, //
       {29, 0, 0, 0, 0,(*DispMenuMeasureRight)},//
#ifdef DynamicBar
       {30,31,32,33,34,(*DispMenuDataInit)}, //"Data"
       {31, 0, 0, 0, 0,(*DispMenuDataUp)},   //
       {32, 0, 0, 0, 0,(*DispMenuDataDown)}, //
       {33, 0, 0, 0, 0,(*DispMenuDataLeft)}, //
       {34, 0, 0, 0, 0,(*DispMenuDataRight)},//
#endif

};

出0入0汤圆

发表于 2008-5-9 16:07:53 | 显示全部楼层
这个*是要加的, *KeyFuncPtr(); 这句可以执行了。
它给的是个函数的首地址。
这样定义的好处,和普通指针一样,使用起来很方便。

出0入0汤圆

发表于 2008-5-9 17:58:07 | 显示全部楼层
记号

出0入0汤圆

发表于 2008-5-12 15:12:13 | 显示全部楼层
yulutong 土土狗
我不知道你有没有看一下liandao 的源代码, 他的代码里执行函数时是这样调用的(*KeyFuncPtr)();//执行当前按键的操作
所以搞糊涂了,应该不要加*才对;
如果照yulutong 土土狗 所说的话,就变成了返回指针的函数了,
欢迎大家指教!!!

出0入0汤圆

发表于 2008-5-22 09:37:26 | 显示全部楼层
xie le

出0入0汤圆

发表于 2008-5-22 11:41:25 | 显示全部楼层
值得学习!

出0入0汤圆

发表于 2008-5-22 12:05:26 | 显示全部楼层
mrkingxu   我看了,并简单的移植成功. 部分我不需要的没有移植.
我看了好几个星期,现在也不能说是完全懂了.

出0入0汤圆

发表于 2008-7-15 17:15:29 | 显示全部楼层
Menu  mark

出0入0汤圆

发表于 2008-7-15 17:21:36 | 显示全部楼层
太好了,谢谢  高手阿

出0入0汤圆

发表于 2008-7-15 19:20:10 | 显示全部楼层
不行
看到一片蓝色
什么都没有

出0入0汤圆

发表于 2008-7-15 20:00:13 | 显示全部楼层
不顶不行啊

出0入0汤圆

发表于 2008-7-16 11:31:20 | 显示全部楼层
好东西

出0入8汤圆

发表于 2008-7-16 11:53:48 | 显示全部楼层
这个不错,做记号。

出0入0汤圆

发表于 2008-7-16 15:01:12 | 显示全部楼层
好东东,收藏了先。

出0入0汤圆

发表于 2008-8-12 09:02:08 | 显示全部楼层
好东西,顶啊~~~~

出0入0汤圆

发表于 2008-8-12 09:22:40 | 显示全部楼层
收藏!!!

出0入0汤圆

发表于 2008-8-23 17:33:47 | 显示全部楼层
好东西

出0入0汤圆

发表于 2008-8-23 19:13:20 | 显示全部楼层
做个记号

出0入0汤圆

发表于 2008-8-23 21:20:52 | 显示全部楼层
MARK

出0入0汤圆

发表于 2008-8-23 22:31:14 | 显示全部楼层
记号备用

出0入0汤圆

发表于 2008-9-24 10:13:27 | 显示全部楼层
终于找到了,谢谢LZ

出0入0汤圆

发表于 2008-10-13 18:38:18 | 显示全部楼层
经典,下载了好好研究。谢谢◎

出0入0汤圆

发表于 2008-10-13 21:19:13 | 显示全部楼层
记号,要用再看

出0入0汤圆

发表于 2008-10-13 21:21:50 | 显示全部楼层
好东西,顶了

出0入0汤圆

发表于 2008-10-13 22:59:22 | 显示全部楼层
好东东!先收藏!

出0入0汤圆

发表于 2008-10-14 13:39:08 | 显示全部楼层
好东西,收藏了再说。

出0入0汤圆

发表于 2008-10-24 12:23:51 | 显示全部楼层
怎么下载不了啊?

出0入0汤圆

发表于 2008-11-7 09:58:37 | 显示全部楼层
正要用的!谢谢!

出0入0汤圆

发表于 2008-11-7 11:00:38 | 显示全部楼层
虽然时间很久了,但依然是精品~

出0入0汤圆

发表于 2008-11-9 11:47:45 | 显示全部楼层
MARK

出0入0汤圆

发表于 2008-11-9 12:54:07 | 显示全部楼层
看一下,能用到

出0入0汤圆

发表于 2008-11-9 14:52:35 | 显示全部楼层
记号啊~~~

出0入0汤圆

发表于 2008-11-9 17:53:26 | 显示全部楼层
收藏,精品啊

出0入0汤圆

发表于 2008-11-11 14:55:36 | 显示全部楼层
收下了,慢慢研读,谢谢!

出0入10汤圆

发表于 2008-11-11 15:04:34 | 显示全部楼层
下了

出0入0汤圆

发表于 2008-11-11 18:39:28 | 显示全部楼层
精品啊,谢谢楼主!!!

出0入0汤圆

发表于 2008-11-12 09:00:15 | 显示全部楼层
谢谢。

出0入0汤圆

发表于 2008-11-12 18:11:47 | 显示全部楼层
谢谢啊,脚印!

出0入0汤圆

发表于 2008-11-12 18:20:24 | 显示全部楼层
hao  好东西

出0入0汤圆

发表于 2008-11-12 22:12:17 | 显示全部楼层
先收下,有时间慢慢理解,谢谢. 

出0入0汤圆

发表于 2008-11-13 14:42:28 | 显示全部楼层
谢谢楼主,  我也会抽时间把设计的一些东西贴上来

出0入0汤圆

发表于 2008-11-14 16:26:49 | 显示全部楼层
呃,请教一下,那个我怎么没有找到中断服务代码?谢谢

出0入0汤圆

 楼主| 发表于 2008-11-14 17:43:02 | 显示全部楼层
to: winter Border
    呃,请教一下,那个我怎么没有找到中断服务代码?谢谢
---为什么要有中断服务代码?的代码中没有使用中断?莫非你是看到那段注释中关于如何在中断中使用GUI的思考?呵呵我也没有结论.

出0入0汤圆

发表于 2008-11-14 20:59:44 | 显示全部楼层
To: LZ,首先:感谢楼主的奉献
       第二:没错,我就是看那段注释,呵呵。
       第三:我现在也在做一个类似的东东,我需要处理LCD、按键和串口通讯,我目前的做法是10ms开个中断,把键盘扫描和蜂鸣器这些小玩意直接在中断里完成,串口通讯还没有加。
       第四:这个玩意我断断续续做了好几天了,不过进展很小,感觉总是沉不下心,郁闷中……

出0入0汤圆

发表于 2008-11-17 14:48:23 | 显示全部楼层
好东西,收下再说!

出0入0汤圆

发表于 2008-11-20 15:14:12 | 显示全部楼层
标记学习

出0入0汤圆

发表于 2008-11-21 21:28:22 | 显示全部楼层
好。

出0入0汤圆

发表于 2008-11-22 14:01:28 | 显示全部楼层
好东西,谢谢分享

出0入0汤圆

发表于 2008-11-22 15:12:59 | 显示全部楼层
顶一下。。。

出0入0汤圆

发表于 2008-11-22 18:29:18 | 显示全部楼层
好东西,谢谢分享,学习一下

出0入0汤圆

发表于 2008-11-23 13:51:21 | 显示全部楼层
好东西,谢谢楼主.

出0入0汤圆

发表于 2009-2-27 10:32:56 | 显示全部楼层
记号 谢谢

出0入0汤圆

发表于 2009-2-27 10:56:33 | 显示全部楼层
收下了

出0入0汤圆

发表于 2009-4-16 11:07:24 | 显示全部楼层
楼主太伟大了

出0入0汤圆

发表于 2009-4-16 18:07:26 | 显示全部楼层
多谢!

出0入0汤圆

发表于 2009-4-16 21:24:11 | 显示全部楼层
mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 23:52

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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