搜索
bottom↓
回复: 7

AVR中写数据到PINx寄存器是什么作用?

[复制链接]

出0入0汤圆

发表于 2010-2-15 10:32:29 | 显示全部楼层 |阅读模式
在AVR中要使引脚的电平翻转,应该是往PORTx寄存器写数据。PINx寄存器是用来检测引脚的电平值是高电平还是低电平的。

然而AVR的参数手册中提及PINx寄存器是可读写的,那么如果往PINx寄存器写数据会有什么效果呢?

下面是国外的一个人写的SPI接口初始化代码,使用的是ATtiny85。


;---------------------------------------------------------------------------;
; Receive a byte  接收一个字节
;
; BYTE rcv_spi (void);

.global rcv_spi
.func rcv_spi
rcv_spi:
        ldi        r24, 0b000100                        ;PB2(SCK)  取得立即数到r24寄存器
        .rept 16                                ;Toggle SCK 16 times 翻转SCK16次
        out        _SFR_IO_ADDR(PINB), r24                ;
        .endr                                        ;/
        nop                        ;读取移位寄存器中的内容到r24寄存器——由于接收的数据只有8位,所以直接通过r24寄存器返回给C程序。
        in        r24, _SFR_IO_ADDR(USIDR)        ;/
        ret
.endfunc



;---------------------------------------------------------------------------;

问题来了,out _SFR_IO_ADDR(PINB),r24 这句话的作用是翻转SCK。往PINx寄存器写数据就是这种效果吗?

出0入0汤圆

发表于 2010-2-15 11:28:18 | 显示全部楼层
我只知道,这个寄存器可以当作额外的通用寄存器用....官方有这个技巧的介绍.....

出0入0汤圆

发表于 2010-2-15 15:40:15 | 显示全部楼层
写这个寄存器 没有多大用的  这个主要是用来读的!

出50入0汤圆

发表于 2010-2-15 15:53:02 | 显示全部楼层
就是弄不懂去写操作PIN有啥现实意义

出0入0汤圆

发表于 2010-2-15 16:37:03 | 显示全部楼层
输出有取反的作用

出0入0汤圆

 楼主| 发表于 2010-2-15 17:27:29 | 显示全部楼层
回复【4楼】linyu0395 林
-----------------------------------------------------------------------

感谢您的回答,刚刚谷歌了一下,找到一篇文章http://www.avrtool.com/avr/Print.asp?ArticleID=686

确实是这样,写1到PINx寄存器的某位,对该位有取反的作用。

出0入0汤圆

发表于 2010-2-21 09:33:47 | 显示全部楼层
注意!这个不是通用的性能,需要查看具体使用芯片的型号。

M16就没有这个功能,在M16的手册中,PIN就是只读寄存器,I/O结构图中没有写PIN的信号。

而TINY85的手册中,PIN是可读写的寄存器,手册中明确说明写PIN将把PIN取反,I/O的结构图也同M16的不同,有写PIN的信号。

还是应该沉下心来,养成先仔细看手册的习惯,然后认真理解,这是最根本的。网上别人的东西,只是参考。


M16的I/O结构图


TINY85的I/O结构图

出0入0汤圆

 楼主| 发表于 2010-2-25 01:41:52 | 显示全部楼层
回复【6楼】machao
-----------------------------------------------------------------------

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

本版积分规则

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

GMT+8, 2024-5-2 21:12

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

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