C – AVR – 简单的PORTB,DDRB,PINB说明

我正在从事学校项目,需要用AVR atmega控制器学习C的基础知识.

我不明白一切如何设置.例如PORTB,PORTD,DDRB; DDRD,PINB,PIND和类似的东西.而且我不知道如何使用if语句,while循环等.

有人可以给我一个简短的解释吗?

我有几行代码行…

DDRB = 0b00000011; // I kNow that here DDRB is set to input/output

和if语句:

if (PINB & (1 << PINB0)){
    A = true;
}

有人可以解释一下这个“if语句”是如何工作的?为什么PINB& (1

你是说什么是if-condition PINB& (1 一个或多个第三位是否为on.在表达式中,使用两个运算符<按位左移和&按位和下面我已经解释了一个字节的例子:="" > 1为0000 0001
> 1 <左移后的2号给0000 0100
>按位,0000 0100给出全零0000 0000或0000 0100

3A.如果全部为零,则条件为false(当a中的第三位为零时).
3B.如果按位结果为0000 0100,则条件求值为真(当a中的第三位为1时).

转载注明原文:C – AVR – 简单的PORTB,PINB说明 - 代码日志

解决方法

你是说什么是if-condition PINB& (1 一个或多个第三位是否为on.在表达式中,使用两个运算符<按位左移和&按位和下面我已经解释了一个字节的例子:="" > 1为0000 0001
> 1 <左移后的2号给0000 0100
>按位,0000 0100给出全零0000 0000或0000 0100

3A.如果全部为零,则条件为false(当a中的第三位为零时).3B.如果按位结果为0000 0100,则条件求值为真(当a中的第三位为1时).

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...