搜索
bottom↓
回复: 3

关于您书上提到的I/O口设置应先设ddrx,但我看到的一篇文档与此相违

[复制链接]

出0入0汤圆

发表于 2008-2-15 00:42:14 | 显示全部楼层 |阅读模式
这个寒假初学AVR,看了很多文档,以您的新书作为主要教材,这个论坛真是学AVR的圣地啊,太棒了

您在6.1.2中有一段: 1)正确使用AVR的I/O口要注意:先正确设置DDRx方向寄存器,再进行I/O口的读写操作。

下面是我看到的一篇文档的截图,还有那个文档,里面有些笔记,见笑了
里面说先设置ddrx会不可靠,您能说明一下吗,谢谢
1
点击此处打开ourdev_214256.pdf(文件大小:166K)

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2008-2-15 00:52:59 | 显示全部楼层
俺就替马老师回答吧,马老师的意思应该是操作io口要设置方向寄存器,不然得不到正确结果,输入输出要搞对,有别于传统的51单片机。

先后顺序要看具体应用了,不过我一直都是先设置port后ddr, 怕的就是端口冲突(avr输出对device输出)

出0入8汤圆

发表于 2008-2-15 10:42:34 | 显示全部楼层
对,这个是要看具体的电路。然后才能决定用那种设置。

出0入0汤圆

发表于 2008-2-15 12:50:58 | 显示全部楼层
LZ贴的说明没有问题,“注意I/O操作的顺序”,点炸药肯定出问题,但如果是点亮LED就不要紧了。

1、2楼的解释完全正确。

我的书中主要强调在一般情况下,不要忘记I/O口的方向设置,学过51的人经常会忘记设置I/O的方向。在具体使用中,应根据实际情况决定DDR和PORT寄存器配置的先后顺序。

其实,有的时候还需要巧妙的利用AVR的I/O口的特点,如在我书中使用I/O模拟I2C通信的例子中,当DATA线为输出高电平时,并没有将DDR设置为输出方式,而是保持输入上拉有效方式,但DATA线上由于上拉为高电平,相当I/O“输出”1,省掉了I/O口工作方式的频繁转换。

一旦你真正理解透了,就会正确和灵活的配置和使用I/O口了。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-8-25 21:16

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

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