Avr IO口定义格式求解
本帖最后由 椒盐时代 于 2013-4-11 09:54 编辑DDRB |= (1 << DDB0)|(0 << DDB1);
PORTB = (0 << PB0)|(1 << PB1);
DDRD |= (1 << DDD0) | (0 << DDD1);
PORTD |= (1 << PD0) | (0 << PD1);
麻烦给解释下这四句
PORTD |= (1 << PD0) | (0 << PD1); 其实这条语句是有点错误的。
他的本意是想把 PD口的 PD0设置为 输出1 而PD1 设置为0、为输入高阻态
正确语句应该是
PORTD |= (1 << PD0);//或的意思是 只将PD0位设置为1、
PORTD &= ~(1 << PD1); //与后面取反的意思是只将 PD1位设置为0
楼主 莫元吧呵呵
DDRB |= (1 << DDB0)|(0 << DDB1);//设置I/O B口中的B0 为输出端口、B1为输入端口
PORTB = (0 << PB0)|(1 << PB1); // 设置B0口为输出逻辑电平0、设置B1口为上拉电阻使能输入
注解: DDR为端口输入 输出方向
PORT 为输出逻辑电平 零或一
楼主 多看数据手册 浮生似海 发表于 2013-4-11 10:37 static/image/common/back.gif
DDRB |= (1
谢谢
请问还有这句
PORTD |= (1 << PD0) | (0 << PD1);
多了个 或 这都是C语法呀,PD0,PD1都是宏定义过的,移位和或运算 浮生似海 发表于 2013-4-11 11:40 static/image/common/back.gif
PORTD |= (1
必须滴
三克斯
页:
[1]