//Чтобы переключать биты в портах или любых регистрах будем использовать логические операции: and(&),or(|),xor(^),сдвиг вправо(>>),сдвиг влево(<<) и инверсия(~).
#include <avr/io.h>
#include "util/delay_basic.h" //включаем функции задержки
int main(void)
{
DDRD &=(~(1<<1)); //Читаем с право на лево-сдвинуть единицу
//на 1 бит влево инвертировать в 0,
//and с регистром DDRD(1 или 0 логичоское аnd
//с 0-ом всегда 0) результат сохранить в DDRD.
PORTD|=(1<<1); //Сдвинуть 1-цу влево на 1-н бит,
//or c PORTD,1-а всегда даст 1-цу
DDRB |=(1<<1)|(1<<0); //Сдвинуть 1-цу влево на 1-н бит,
//or c DDRB,сдвинуть 1-цу влево на 0 бит.
while(1)
{
PORTB^=(1<<1); //Сдвинуть 1-цу влево на 1-н бит,
//xor с PORTB повтаряясь будет то 0 то 1-а.
for(unsigned char i=0;i<6;i=i+1) //Цикл на 6 повторений
_delay_loop_2(65535); //AVR-кая функция задержки
//на максимум 65535 тиков.
}
}
НАЗАД Assembler AVR Assembler PIC ДАЛЕЕ