打印

cortex M0扫描按键 大侠拍砖

[复制链接]
楼主: sunshitao
手机看帖
扫描二维码
随时随地手机跟帖
21
Cortex-M0| | 2011-8-13 16:11 | 只看该作者 回帖奖励 |倒序浏览
呵呵!

那更要恭喜LZ了,搞技术的能吃饱,穿暖。。有的住。。就已经到顶峰了。。。。。。

不搞技术,不但吃饱,穿暖。。有的住。。不是梦,今后或许身边还会多几个蜜。。。。。。

使用特权

评论回复
22
sunshitao|  楼主 | 2011-8-13 16:15 | 只看该作者
21# Cortex-M0
呃。。谢谢。。。但本人不善言辞,,估计不好混 :'(

使用特权

评论回复
23
Cortex-M0| | 2011-8-13 16:23 | 只看该作者
呵呵!

跟俺一样~~~~  同病相连~~~~

使用特权

评论回复
24
sunshitao|  楼主 | 2011-8-13 16:31 | 只看该作者
高手们 还是贴个代码 或者给指点指点 让我们这些菜鸟学习学习吧。。。。不一定就是这个主题了啊。。。。。让菜鸟也进步。。。:D

使用特权

评论回复
25
jimmychen| | 2011-8-13 16:49 | 只看该作者
:loveliness:刚来论坛没几天 请问OO是谁,让我膜拜一下

使用特权

评论回复
26
Cortex-M0| | 2011-8-13 16:50 | 只看该作者
呵呵!

贴个代码不值钱,还是思路解决问题的方法最值钱,向你推荐两位高手,highgear老师 和 刘前辈,这两位高手是二姨家的一对怨家,一见面就使出浑身的劲PK,  您搜一下这两位高手的贴子,认真拜读一下,分辩出其中的事非,包您胜读十年书~~~  :lol

使用特权

评论回复
27
sunshitao|  楼主 | 2011-8-13 17:12 | 只看该作者
26# Cortex-M0
个人感觉 :不贴代码 只谈思想。。对我等初学者 。。效果不是很理想。。。

使用特权

评论回复
28
Cortex-M0| | 2011-8-13 17:54 | 只看该作者
网上的代码一段一段,经常无头无尾,如您能看懂,已经入门了,抄代码建议还是抄那些质量高一点的教科书为上策,辅以外国人编写的经典C语言例程,多看看自然就能写出好程序,比如,上面刘前辈推荐的程序,就是很经典的C程序格式。

使用特权

评论回复
29
Cortex-M0| | 2011-8-13 17:57 | 只看该作者
NE5532老师有句名言:“学写程序除了背点语句,掌握一些基本技巧外加做好规划之外,真的不需要啥东西,会说话就会写程序。”

原出处:
[侃单片机] 主题:问程序的同学,进来这里吧,别纠结了。
https://bbs.21ic.com/viewthread.php?tid=252559

使用特权

评论回复
30
刘前辈| | 2011-8-13 19:08 | 只看该作者
有没有发现另外与众不同的特点?
1、好像所有的键盘扫描程序都是先消抖,然后确定键值;也就是说最快的响应应是10~20ms以后了;
2、这个键盘扫描是立即确定键值的。

一个人的键盘响应能够比大多数人快,那就是件了不起的事。



、、

使用特权

评论回复
31
sunshitao|  楼主 | 2011-8-13 19:23 | 只看该作者
30# 刘前辈
if (Key == Old_Key){


.........


}
Old_Key = Key;
这两句话的位置,确实精妙。。没看出来 汗颜了:D  
再次受教了。。。

使用特权

评论回复
32
sunshitao|  楼主 | 2011-8-13 19:46 | 只看该作者
25# jimmychen
OO你的楼下说了。。。看看吧

使用特权

评论回复
33
sunshitao|  楼主 | 2011-8-13 19:49 | 只看该作者
29# Cortex-M0
学个语法 不难。。。但是写程序得用心才行啊。。。呵呵 对吧 。。。不用心的话什么思想都是白扯了。。。。。用心的话。估计自己就能产生思想,,只不过我们如果站在巨人的肩膀上,吸收他们的思想。。我们会进步的更快

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
Cortex-M0 + 1
34
Cortex-M0| | 2011-8-13 20:15 | 只看该作者
LS小盆友说的对,赞一个~~~

使用特权

评论回复
35
sunshitao|  楼主 | 2011-8-13 22:32 | 只看该作者
34# Cortex-M0
看了你说的两位大侠的帖子,感觉没有像你说的那样NB到一塌糊涂的地步   呵呵 。。不好意思不自谦了这次,,,但我们现在说技术 请原谅我的不自谦  谢谢:::::
我估计两位大写计算机组成原理可能学的只是一知半解。。如果计组学的过的去的话汇编根本就不是问题。虽然我汇编只是一知半解,,,,(伪指令不懂,当算数的方法,还是明白)。。学完计组  小弟曾自己设计过CPU。。。只有几条指令,,取指取数据方法简单。。。但最终因为理论不到位,没有付诸硬件(也是没有硬件条件,小弟自学,没有现成芯片 不想动手)。
但是两位的开发经验是摆在那里的。。。
我从来不认为技术多NB的人就多NB。。因为我们都是在用别人的东西。。。
我认为理论(当然理论来自于实践,但不是我们这个级别的实践),指引着我们的前进道儿。。。   
小弟不自谦了  忘兄弟见谅。。。

使用特权

评论回复
36
batsong| | 2011-8-13 22:52 | 只看该作者
楼主大学时就有如此造诣,90后还是有希望的,我大学时连电阻电容都不认识

使用特权

评论回复
37
sunshitao|  楼主 | 2011-8-13 22:55 | 只看该作者
36# batsong
你的照片真像我同学。。。。。

使用特权

评论回复
38
highgear| | 2011-8-13 23:25 | 只看该作者
楼主的程序的却罗嗦。
当使用这么多个 switch(Y_) 时,第一反应是能否合并,例如是否可以使用一个函数来缩短长度等等。
其次是效率问题。这种矩阵式键盘扫描可以利用口线的连续性,简单地得到键码,例如

output = 0x1;
for (i=0; i<OUTPUTCOUNT; i++) {
   KeyPortOutput = ~output;     
   input = 1;
   for (j=0; j<INPUTCOUNT; j++) {
      if ((KeyPortInput & input) == 0) {
         return (i*INPUTCOUNT + j);
      }
      input <<= 1;
   }
   output <<=1;
}
return NOKEY;

思路大致如此,可以根据具体情况优化。或是得到的扫描码作为 index 查表,可得希望的键码。

使用特权

评论回复
39
sunshitao|  楼主 | 2011-8-13 23:30 | 只看该作者
38# highgear
谢谢前辈指导  小生受教了。。。作为index查表  想法确实新颖。。。

使用特权

评论回复
40
highgear| | 2011-8-13 23:49 | 只看该作者
可能对你来说新颖,随着你的见识的增加,你就会知道这已是烂大街的做法了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则