标题: AVR的C中 PORTD |= (1 << PD5) 是怎么理解的 [打印本页]

作者: toby    时间: 2012-10-25 17:03
标题: AVR的C中 PORTD |= (1 << PD5) 是怎么理解的

刚学AVR C

请问 AVR的C中  PORTD |= (1 << PD5)  是怎么理解的,多谢!


作者: 丛林野狼    时间: 2012-11-9 13:15
将PD5端口置1,在iom16v.h中有define PD5 5的定义
作者: weicaihui2008    时间: 2013-2-18 14:16

PORTD的第5位置1,其他位不变

[此贴子已经被作者于2013-2-18 14:17:17编辑过]

作者: mxlslf    时间: 2013-3-2 09:30

在iom16v.h中有define PD5 5的定义;

PORTD |= (1 << PD5)语句,首先执行括号内的程序 (1 << PD5),即将0000 0001数字向左循环5个位,最低位补零,即变成0010 0000

将0010 0000 该数与PORTD进行与操作,因为AVR上电后PORTX=0x00,所以相与后,PORTD就变成了0x20;


作者: 诺维斯基2008    时间: 2013-10-20 10:51
PD5就是D口的第5位,意思就是D口的第5位置1
作者: vmbjn888    时间: 2013-12-2 21:33
PD5好像应该是第6位吧。
作者: 一梦千年    时间: 2013-12-11 22:18
PD5置为1
作者: yangchunlong    时间: 2015-5-11 06:43
mxlslf 发表于 2013-3-2 09:30
在iom16v.h中有define PD5 5的定义;PORTD |= (1 &lt;&lt; PD5)语句,首先执行括号内的程序 (1 &lt;&lt; PD5), ...

将0010 0000 该数与PORTD进行与操作,因为AVR上电后PORTX=0x00,所以相与后,PORTD就变成了0x20;

这句话中的“与”应该为“或”吧?0x20结果应该没错
作者: 孤傲乘风    时间: 2015-5-14 17:20
pd5置高电平




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1