Ответ в теме: Программирование МК AVR



#15758
SergeyVT
Участник

Доброго времени суток, Narod Stream!Прошу разъяснить для меня простую вещь.
В уроке про мигающий светодиод мы изучали побитовые операции И, ИЛИ, НЕ.Все вроде бы понятно.Но тут напрашивается вопрос, зачем Вы так усложнили код, тем более с обычным мигающим светодиодом?
Ваш код
#define F_CPU 8000000
#include <avr/io.h>
#include <util/delay.h>

int main(void)
{
DDRD = 0xFF;
PORTD = 0b00000000;
while(1)
{
PORTD |= (1<<(PORTD0));
_delay_ms(500);
PORTD &= ~(1<<(PORTD0));
_delay_ms(500);
}
}
Мой код
#define F_CPU 8000000// указываем частоту в герцах
#include <avr/io.h>
#include <util/delay.h>

int main(void)// начало основной программы
{
DDRD = 0xFF;//Все выводы порта D будут сконфигурированы как выходы.
PORTD = 0b00000000;//устанавливаем на всех ножках принудительно ноль(во избежание остаточного мусора в регистрах)
while(1)
{
PORTD = 0b00000001;
_delay_ms(500);//делаем задержку в пол секунды
PORTD = 0b00000000;
_delay_ms(500);//делаем задержку в пол секунды
}
}
Хотя ведь можно было просто установить вот так как у меня и все так же работает.Если я не прав, то поясните в чем конкретно.Буду очень признателен.