Понедельник, Май 25, 2020

Работа с битами AVR C

 

 

//Чтобы переключать биты в портах или любых регистрах будем использовать логические операции: 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                          ДАЛЕЕ

 



Back to Top