AVR C - 为什么反转值?

时间:2013-10-12 13:46:08

标签: port avr inverse

我有极其愚蠢的问题,但我无法找到答案。我正在启动AVR编程,我有一个问题,关于我找到的代码示例。

int main(void)
{
    DDRA = 0xFF; // Setting all port A pins for output

for(;;)
{
    PORTA = ~0x21; // Why ~ if we want PA0 and PA5 to be High?
    _delay_ms(10000);
}

那么为什么我们需要反转0x21?它应该在PA0和PA5上为高电平,但是如果我们将其反相,则不应该相反(除PA0和PA5外都是高电平)?

我试图搜索,但我没有找到任何解释。谢谢!

1 个答案:

答案 0 :(得分:0)

问题在于我只关注代码。您还应该始终检查方案以了解UC的连接方式。

在我的情况下,它是"颠倒的"连接方式,其中" 0"意味着LED开启了。