搜索
bottom↓
回复: 408

题目:多功能按键设计。利用一个I/O口,接一个按键,实现3功能操作:单击 + 双击 + 长按。

  [复制链接]

出0入0汤圆

发表于 2011-8-23 22:16:15 | 显示全部楼层
老师,阅读你的帖子和教材我获益匪浅,今天我在看你出版AVR教材,对于你的教材中的第十五章:串行SPI接口应用 中的例15_1的源程序存在一下疑问:
基于74HC164并利用SPI口实现8路并口输出的扩展(原书P437页)
以下给出我存在疑问的源程序的一部分:
#difine SPIF 7
....
while(!(SPSR&(1<<SPIF))) {};
....
//SPI初始化
SPCR=0x50;
SPSR=0x01;

您在书中while语句后的注释为“等待SPI完成”但是我觉得你的程序好像不能实现这个功能
首先你把SPIF定义为7(0000_0111)让后与SPSR(0000_0001)位与,在while循环中只循环了5次就跳出了while循环,而要传送的是一个字节的数据(8位)所以我觉得你的程序在还没有将8位数据串行传输完就已经去执行下面的显示语句了,好像不能达到要求

也有可能是我没看懂马老师精妙的程序,还望不吝赐教

出0入0汤圆

发表于 2011-8-23 22:27:32 | 显示全部楼层
马老师,在AVR教材中第十五章:串行SPI接口应用,例 15.2中您用采用完结A/D的方法实现数字万用表的功能,可是ATmega16只是8位的单片机,请问用没用什么办法用你的AVR开发板实现十二位的A/D转换呢?
我用的是TI的TLV2543芯片,是十二位的D/A芯片,用你讲的SPI的办法好像不行,应为ISP数据寄存器只有8位,无法存储12位转化结果

出0入0汤圆

发表于 2011-8-23 22:52:35 | 显示全部楼层
呵呵,用马老师的AVR实验板已经成功实现了以上按键要求

出0入0汤圆

发表于 2011-8-24 16:56:02 | 显示全部楼层
不要灌水,有意义么
回复【22楼】dongzhiqing  
-----------------------------------------------------------------------
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-5 11:27

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

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