Chinaunix首页 | 论坛 | 博客
  • 博客访问: 176947
  • 博文数量: 40
  • 博客积分: 1573
  • 博客等级: 上尉
  • 技术积分: 385
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-09 22:50
个人简介

忙得不会思考了!!!!!!

文章分类

全部博文(40)

文章存档

2015年(2)

2014年(1)

2011年(15)

2010年(3)

2009年(19)

我的朋友

分类: 嵌入式

2011-03-16 14:45:50

 
  在设置1611的任意端口的任意引脚输入输出方向,特别是输出的时候,你也许会发现,在还没有设置输出1或者0的时候,这个引脚已经为1或者为0.
  为什么会这样,其实很简单,上拉、下拉。
  在这里并仅限于发现并解决问题,防止这样的问题存在于你设置端口为输出1之前,并且造成你对端口能正常工作的错觉才是我所关注的。
  很多时候,为了在一个复杂的电路上实现一个小功能,特别是很多人分工完成一个项目的时候,这个问题就会慢慢地引起你的注意。
  比如,甲用PORT2的两个引脚完成了一个输入检测,他可能在端口初始化的时候,本能地把其他的六个端口设置成了输出(本能:考虑到输入的不确定性,如果没有这样的本能,不要追究了)。

  于此同时,乙要用PORT3的一个引脚输出高电平(这里不要考虑这个PORT3能否作为输出,就当它可以输出)。这个引脚在原理图上是和PORT2没有使用的其中一个引脚连接起来,并且连接了上拉电阻。
  甲乙分别完成了自己负责的模块之后,把他们的模块交给丙来整合。丙是怎么做的呢?丙要根据整个硬件要完成的功能要求来安排模块的先后顺序,包括初始化。在初始化的时候,如果他在第一时间注意到了电路上的那个上拉电阻,他在调试的时候应该就不会碰到一些莫名其妙的问题(请允许我用这个词来表达自己碰到这样的问题的感受)。
  丙在调试这个乙负责的功能模块的时候,首先会肯定PORT3输出的高电平没有问题(这是肯定的,示波器会告诉他)。但是接下来他会认定PORT3的这个端口没有问题,就导致了后来他用这个端口输出低电平的时候心情的极度郁闷。
  深深地同情丙的惨痛遭遇,在这个静电横行,引脚连接的CMOS随时因为身体的接触被击穿的地方,碰到这样的问题也是一件大悲之事。
  但是丙是要被批评的,如果丙在早期就对芯片的引脚的输入输出功能做出检测,这类问题可以避免,这或许早就应该成为丙的本能。
阅读(2236) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~