Переключение PORTA Atmega32 не будет проходить через весь регистр - PullRequest
0 голосов
/ 30 августа 2018

Я пытаюсь создать программу для мигания светодиода на каждом бите платы разработки для PORTA, используя смену. Когда я симулирую программу, вместо сдвига между битами 0-7 выводится 0x01, 0x02, ox04, 0x10. Тогда это начинается снова. Есть ли какая-то причина, по которой я не могу полностью перейти через этот 8-битный регистр? Любая помощь будет оценена.

#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>


int main(void)
{
    DDRA = 0xFF;

    while (1)
    {
       PORTA = 0x01;
       _delay_ms(1000);
       for (int count = 0; count < 7; count++)
            {
            PORTA = 1<<PORTA;
            _delay_ms(1000);
            }

    }
}

1 Ответ

0 голосов
/ 30 августа 2018

Возможно, вы имеете в виду это:

for (int count = 0; count < 8; count++)
{
    PORTA = 1<<count;
    _delay_ms(1000);
}
...