Wiki ADA

Projetos em Engenharia de Computação

Ferramentas do usuário

Ferramentas do site


programacao-atmega328

Essa é uma revisão anterior do documento!


Programação ATmega328

Nesta página são apresentados os conceitos básicos para programação de ATmega328 e ATmega328p utilizando programação em C e o compilador AVR-GCC. A programação é feita tipicamente em um Sistema Operacional Linux.

Informações sobre a gravação de códigos aqui mostrados nos microcontroladores podem ser encontradas em Gravação ATmega328.


Instalação do Compilador

Para distribuições de Linux baseadas em Debian (como o Ubuntu), a instalação do compilador é feita através da linha de comando:

sudo apt-get install gcc-avr gdb-avr  binutils-avr avr-libc

Para distribuições de Linux baseadas em Arch, a instalação é feita a partir da linha de comando:

sudo pacman -S avr-gcc avr-gdb  avr-binutils avr-libc

Portas Digitais

Uma das coisas mais essenciais na programação de um microcontrolador é a entrada e a saída de sinais por seus pinos. No ATmega328 e ATmega328p, temos três portas programáveis:

  • Porta B, com 8 pinos;
  • Porta C, com 7 pinos;
  • Porta D, com 8 pinos.

Contudo, não conseguimos trabalhar com pinos separadamente durante a programação, ficando restritos à configuração da porta inteira. Então precisamos fazer operações bit a bit que envolvam bytes representantes das portas (e não bits representantes dos pinos).

Direção do Pino

Antes de usar um pino, é necessário definir se o mesmo é um pino de entrada ou de saída (se vai ler o sinal elétrico no pino ou se vai escrever um sinal elétrico no mesmo). Esta definição é feita através da configuração dos registradores DDR (Data Direction Register).

Há um registrador DDR para cada uma das portas: DDRB, DDRC e DDRD. E um bit configurado como '0' significa que o pino correspondente será de entrada, e caso seja configurado como '1', será saída. Exemplo: caso queiramos que o pino B4 seja configurado como entrada, colocaremos '0' no bit 4 de DDRB; caso queiramos que seja saída, colocaremos '1' no bit 4 de DDRB.

programacao-atmega328.1539820080.txt.gz · Última modificação: 2018/10/17 20:48 por amador