6319|18

7815

帖子

57

TA的资源

裸片初长成(中级)

楼主
 

【手机DIY】辛昕5:按键+12864=人机界面 [复制链接]

第四个帖子的时候。
我已经完成了 基本按键 的底层 和 满足这个应用 的 单键识别 函数。
显示方面,12864所需的显示功能也完成了。

这个时候,关于这一部分,我需要统一起来考虑的是 它们两个组合而成 的 人机界面。

以前,因为不熟悉,我一直觉得这是一个很麻烦的东西。而后因为工作中涉及 写一个 组态TFT屏 的任务。
我从维护,到最后自己不满足当前已有的 框架,自己试着一点点修改一个 完全独立于现有框架之外 的框架。

这个过程,加深了我对 人机界面 的认识。

然而这个时候,我发现自己很容易受此前那个 基于串口通信的组态屏 的思路的影响。

我发觉我需要完全放下它,认真从一个纯粹的 界面组成的元素去思考这个问题。

我已经放弃了通用到底的想法,因为那样不仅会让事情变得很复杂,同时也会严重影响最后出来的效果。
因为这完全是 杀鸡用牛刀 的事情。

然而,我也很希望自己可以尽可能地满足更大范围的应用情形。



于是我发现,我在定义 界面 的范畴 的时候,考虑到的情形 越来越深,越来越复杂,还得考虑malloc之类的限制问题
——坦白说,没有了 动态分配内存 这个功能......我从没有任何时候发现 这个功能原来可以使程序如此 动态,自由......

虽然我不介意继续想下去,但考虑到 不重造车轮 的行业教训 和 虚V界  的教训,我还是决定认真考虑 如何找到和利用 现有的框架。

比如可能稍嫌扯远 的 ucgui一类的东西。


当然,我现在越来越觉得凡事需要 deadline
否则,不管是工作,还是业余DIY,最终都会变得遥遥无期,这是不行的。

就手机DIY 这个项目而言,我目前考虑到的情形(因此构造出来的这个 人机界面框架) 已经足够满足要求了。

而只要 定义明确了,要实现,总不是一件困难的事情。
今天周三,到周六结束的时候为止。

我将以当前最终的定义结果,进行彻底的实现,而暂时不再更新 定义。
但是我会努力让 这个定义 尽可能小的影响到整个实现的代码 —— 虽然就我的能力和经验而言,定义都变了,影响一般都是质的变化......

最新回复

目前什么情况?  详情 回复 发表于 2015-5-1 00:57
点赞 关注(1)
个人签名

强者为尊,弱者,死无葬身之地

 

回复
举报

1972

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
支持版主
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

板凳
 
今天吃早餐的时候在试着搜索一下,一开始面临的就是 关键字 是什么都难以确定

于是我搜索了 单片机人机界面编程

多级菜单

甭说前者出了多少广告,我只是突然在想,多级菜单 毕竟不同于 人机界面。
至少 多级菜单 只是 人机界面 的一种形式。
所以,我是不是不该用 人机界面 这个太过宽泛 的概念去定义这个只需多级菜单就能满足要求的手机界面应用?
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

9161

帖子

6

TA的资源

管理员

4
 
卤煮,我想看图
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

5
 

你想看什么图?
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

9161

帖子

6

TA的资源

管理员

6
 
辛昕 发表于 2014-7-10 17:18
你想看什么图?

DIY手机的照片
加EE小助手好友,
入技术交流群
EE服务号
精彩活动e手掌握
EE订阅号
热门资讯e网打尽
聚焦汽车电子软硬件开发
认真关注技术本身
 
 
 

回复

577

帖子

9

TA的资源

纯净的硅(中级)

7
 
你也用LCD12864?不知道你的界面如何
 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

8
 
季夏木槿 发表于 2014-7-10 18:08
你也用LCD12864?不知道你的界面如何

是啊。
1602弱爆了,又不便宜。
然后论尺寸,就12864比较多人用,我就跟着用咯。
就当一个 黑白屏应用情况下 的通用件。

至于tft屏还没研究~~
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

9
 

暂时一段时间内没啥图看哈~~~
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

10
 
季夏木槿 发表于 2014-7-10 18:08
你也用LCD12864?不知道你的界面如何

界面嘛,真在做。
多级菜单。

昨晚突然要小加班测试一下之前做好的队列,貌似有点小问题。
不过这个队列也是马上要用在 串口接收 中的,所以也算是属于DIY的节奏~~
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

577

帖子

9

TA的资源

纯净的硅(中级)

11
 
辛昕 发表于 2014-7-11 09:55
界面嘛,真在做。
多级菜单。


队列,听着顿觉高达上啊,哈哈能不能开帖讲一下
个人签名哈喽,我是卡索KaSuo~~
 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

12
 
季夏木槿 发表于 2014-7-11 10:49
队列,听着顿觉高达上啊,哈哈能不能开帖讲一下

队列 其实很简单的。
我在pc上调通了。
但在狗日的MDK上还有点问题。
下午或者晚上吧,我把代码发出来,没多复杂的东西。
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

13
 
做了一个很简单的 多级菜单 的测试界面(只是测试这个 多级菜单是否如我所愿的运转)

本来想旋转的,可是ACDSEE这羔子死活转不过来,也罢。
直接上图了~~

个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

14
 
本来想上代码来着,但因为还比较粗糙。
上来了也没啥意义。
还是先放着。

其实对于这个过程我相当熟悉,整个代码也很简单。
就算加上一些杂七杂八的代码,这个源文件也不过140来行,而仔细想想,真正相关的两三个函数,其实不过四五十行而已。

对,刚数了一下,就 四十来行。
这说明 多级菜单 这个东西其实极其简单。

但是这个过程也花了个把小时,其中主要原因的有两个:

1.按键,可能也与驱动函数的消抖做的还不够好。
我的桌子有点抖,我发现有时它经常被这抖动影响。

2.尽管函数很简单,可是我却尽是犯些弱智的问题,比如我就在一个小函数里,居然干出了不检查下标乱引用,结果引起死机......

最近上班调那个 文本处理函数 也好,做这玩意也好。
越来越发现这些细致的活,真的很需要那种无处不在很细的测试。
但是我发现,这些测试的工具和手段本身已经变得非常无关要紧。

重要的是测试的方法和意识。
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

15
 
昨晚 多级菜单 基本弄出了点名堂。
但是被个按键搞的有点小混乱。

今天本来做好了各种猜想和辅助手段来检测,最后却发现,可能只是 按键处理函数 没做好而已。
不过尽管如此,我还是决定在继续妥善处理按键,尝试做一件我很早就想做的事情。

做一个相对时间比较,检测的辅助模块。

这,这算是上来报个平安吧,呵呵~~
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

16
 
听下文
 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

17
 

谢谢关注,因为中间事情比较多,还需我做的过程中,为一些事情和想法做了一些尝试,所以进度比较慢。
当前的情况是
12864上做成了一个通用的带自动挤掉旧内容的简易condole,并且封装成库。
而键盘也做好了只是在封装成库方便调用,但这个过程里出现了一个奇怪的big这也是我这个周末在这上面做的主要尝试,但最终仍然没有妥善解决。
考虑到拖沓了很久,所以我决定这个地方先不强求把按键也封装成库了,接下去会继续完成简单人机界面的完成。


个人签名

强者为尊,弱者,死无葬身之地

 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

18
 
目前什么情况?
 
 
 

回复

7815

帖子

57

TA的资源

裸片初长成(中级)

19
 
e2zone 发表于 2015-5-1 00:57
目前什么情况?

现在,按照 屏-控件 的模式 组织界面



当前做到了 能移动图标,响应按键事件,切换到具体的页面



可以说基本的架子出来了。



但还有一些细节。

另外就是文本输入还没做,但这个因为很纯粹,我可以直接移用我之前在其他地方做的模块,反而应该不是什么麻烦。
个人签名

强者为尊,弱者,死无葬身之地

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表