我正在从事学校项目,需要用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
> 1为0000 0001
> 1 <左移后的2号给0000 0100
>按位,0000 0100给出全零0000 0000或0000 0100
> 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
> 1为0000 0001
> 1 <左移后的2号给0000 0100
>按位,0000 0100给出全零0000 0000或0000 0100
> 1 <左移后的2号给0000 0100
>按位,0000 0100给出全零0000 0000或0000 0100
3A.如果全部为零,则条件为false(当a中的第三位为零时).3B.如果按位结果为0000 0100,则条件求值为真(当a中的第三位为1时).