打印

IO由输出状态转换为输入状态后延时多久读按才了呢?

[复制链接]
2294|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
RT    对于这个原理图我是这样做的:首先P0.0,P1.0,P5.4 P2.4为输出状态,P1.2为输入状态,根据灯码点亮上应的灯。
然后P2.4为输出低电平使灯不能这,P0.0,P1.0,P5.4为输入状态  P1.2为输出低电平状态 1ms后读取P0.0,P1.0,P5.4信号。
再是P0.0,P1.0,P5.4为输出高电平状态,P1.2为输入状态,1ms后读取P1.2的信号。
最后P0.0,P1.0,P5.4,P1.2为为输出高电平状态,P2.4为输入状态,1MS后读取接地按键的信号。


上面操作每1MS操作一次,因为灯不能同时点亮,所以灯分三次扫描,所以要3MS

之后设置好IO状态后延时准备读按键 1MS

读取按键,设置IO状态准备读按键    1MS

读取按键,设置IO状态准备读按键    1MS

读取按键, 处理输入信号               1MS

总共用了7MS,我的疑问是后4MS可不可认缩在1MS内做完,设置好IO准备读按键到读按按键的时间有20~30US,这样我的灯的亮度就提高一倍了。

若仿真时IO状态变换后,马上读按键,是无问题的,不过若按键挂在三极管(有在数码管位扫描)的基极上应该不行.l
之前有前辈说他就做的程序就是IO状态变换后马上读取按键信号,在高温的时候就出现按键误读的程况

1MS的延时我觉得是绝对够的,但20~30US后可不可呢?或者有什么依据去判断的呢?若有在超高亮的数码管(反向电压漏电较严重的)也是这样吗?

还用AD输入通道转换.每次换道,采样的第一次A都是不准的,对于多通道AD读取要注意哪些。

还有我用的是台湾的芯片 如松翰,盛群。

77.JPG (183.59 KB )

77.JPG

相关帖子

沙发
无脑达人|  楼主 | 2011-4-19 21:44 | 只看该作者
IO由输出状态转换为输入状态后延时多久读按键呢? 主题写错了,哈哈。

使用特权

评论回复
板凳
ayb_ice| | 2011-4-20 08:29 | 只看该作者
本帖最后由 ayb_ice 于 2011-4-20 08:31 编辑

理论上转换后随时可以读,但结果不一定是程序员想要的(但结果其实正确的反映了IO口的状态)

这个取决于很多因素
比如上拉电阻的大小,负载电容的大小,MCU的设计...

使用特权

评论回复
地板
delin17| | 2011-4-20 08:50 | 只看该作者
应该是多加几个NOP就好了..
我一般加4-5个NOP

使用特权

评论回复
5
无脑达人|  楼主 | 2011-4-20 21:44 | 只看该作者
3# ayb_ice

我用的是松翰芯片,若设为内部上接电阻的话,一般都是几十K的上拉,在高温状态下,
不知道上接电阻是不是变小,还有的是若是三极管控制数码管的COM端的话,按键与数码管的段复用,是不是由于三极管的等效电容(特别是高温状态下),需要在关闭输出显示后
延时几十个us,还有发光二极管的等效电容也是不是一个考虑因素?

使用特权

评论回复
6
无脑达人|  楼主 | 2011-4-20 21:45 | 只看该作者
不知道你在高温如70度下按键试过没有,常温下一般没有问题的。

使用特权

评论回复
7
ayb_ice| | 2011-4-21 08:34 | 只看该作者
一般情况延时10个指令周期就可以了

使用特权

评论回复
8
无脑达人|  楼主 | 2011-4-21 20:38 | 只看该作者
7# ayb_ice
那就20多US就OK了,我以为芯片的IO能力很差:)

使用特权

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

本版积分规则

10

主题

68

帖子

1

粉丝