Memória de programa AVR/ATmega328P

Sempre que utilizamos strings e arrays constantes em nossos programas, por padrão elas vão parar na memória RAM. Como tempo pouca memória RAM, seria ótimo conseguir colocar isso na memória de programa, liberando a preciosa RAM para as variáveis.

Neste post vemos como fazer isso nos microcontroladores AVR, como o ATmega328P do Arduino Uno.

Continue lendo “Memória de programa AVR/ATmega328P”

Reduzindo o programa AVR/ATmega328P

O seu programa está grande demais? Muito lento para gravar o microcontrolador? Não cabe na memória? Vamos reduzir o programa!

Há alguns truques simples para reduzir o tamanho dos programas e, se não está utilizando todos, as chances são que seu executável está maior do que o necessário.

Vejamos como podemos reduzir o tamanho do programa gerado pelo compilador.

Continue lendo “Reduzindo o programa AVR/ATmega328P”

Entrada e saída no mesmo pino

Seu projeto está indo muito bem. De repente é necessário adicionar um botão, mas não há nenhum pino do microcontrolador disponível. O que fazer? Utilizar entrada e saída no mesmo pino!

Neste post veremos como utilizar o circuito abaixo para dobrar a funcionalidade de um pino do microcontrolador: acionar um LED e ler um botão através do mesmo pino.

Entrada e saída no mesmo pino (LED + Botão)
Entrada e saída no mesmo pino (LED + Botão)

Continue lendo “Entrada e saída no mesmo pino”