USANDO O ECLIPSE COMO IDE PARA O WINAVR

Por que usar o Eclipse como IDE para o WINAVR?
Eclipse é uma IDE muito moderna, com muitas funções. E sendo uma IDE de código aberto ela é muito suportada e documentada por muita gente e muitas outras características como o plugin que usaremos existem para estender ainda mais sua funcionalidade.
Outra grande vantagem é escapar do incomodo makefiles, usando o Eclipse sua aplicação é automaticamente criada e até gravada no microcontrolador com o auxílio do AVRdude.
Para usarmos o ECLIPSE utilizaremos um plugin que nos permite utilizar o AVR-GCC como compilador. Mais informações sobre o plugin podem ser achadas na página do desenvolvedor Thomas Holland.

Instalando o WinAVR, Eclipse e o plugin.
Faça download dos seguintes softwares:

ECLIPSE
http://www.eclipse.org/
PLUGIN PARA UTILIZAR O WINAVR-GCC COMO COMPILADOR PARA O ECLIPSE
https://sourceforge.net/project/showfiles.php?group_id=189165
WINAVR
http://winavr.sourceforge.net/download.html
JAVA
http://www.java.com/pt_BR/download/index.jsp

O primeiro passo é instalar o WinAVR no diretório padrão c:\winavr\xxxxx o procedimento é de sempre clique em avançar/ok até a conclusão da instalação.
Agora instalaremos o ECLIPSE, ele não vem com um setup é só extrair em qualquer local. Por preferências pessoais eu instalei na pasta C:\
O plugin também não requer nenhuma atenção especial, somente extraia ele na pasta do ECLIPSE  que no meu caso é C:\eclipse-cpp-helios-win32\eclipse\
A maioria dos computadores já possui a run time do JAVA instalada, se você não tiver ou caso não saiba que tem é só executar o executável na pasta do Eclipse, caso uma mensagem de erro aparecer instale o JAVA e novamente tente abrir o ECLIPSE o procedimento para instalar o JAVA é o de sempre clique em avançar/ok até a conclusão da instalação.
Agora poderemos começar a trabalhar com nossa nova IDE, vá na pasta do ECLIPSE e execute o programa eclipse.exe.

Assim que o programa carregar clique me  File > New e então selecione C Project.
Selecione AVR Cross Target Application, no lado direito você verá o AVR-GCC como Toolchain, em Project name  coloque pisca e clique em next para mudar para a próxima janela.


 
Na nova janela só desmarque a opção de DEBUG e clique em finish.
Mudanças posteriores serão feitas em Project > Properties.
A janela de trabalho será está:

 
Nosso próximo passo e criar um arquivo.c para darmos inícios ao trabalho, clique com o botão direito em pisca e vá em New > File e digite como nome pisca.c
Clique agora no menu superior Project > Properties
E faça as seguintes alterações:
Selecione C/C+++  Build na lista a esquerda
A sua direita mude a configuração para Release como mostrado na figura abaixo


 
No menu a esquerda clique em AVR > Target Hardware e escolha o micro que você deseja trabalhar e seu clock. No meu caso será um ATmega16 a 1Mhz.

 
Agora no mesmo menu a esquerda clique em AVR > AVRDude clique em edit e selecione o seu programador ou o protocolo que ele segue, novamente no meu caso será o STK500, conforme imagem abaixo:






Clique em OK e OK novamente para sair das configurações.
Cole o seguinte código no editor:
#include <avr/io.h>
#include <avr/delay.h> // Header da função delay

void main (void)
{
DDRB=0xFF; // Data Direction Register porta D setada como output

                while(1) // O bloco do while se repetira eternamente enquanto for verdadeiro
                {

                               for (signed int i=1; i<=128; i*=2) // Inicia uma contagem e executa as declarações do bloco enquanto verdadeiro
                               {
                                               PORTB=i;
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                               }

                               for (signed int i=1; i<=128; i*=2) // Inicia uma contagem e executa as declarações do bloco enquanto verdadeiro
                               {
                                               PORTB=~i; // ~ comlementa os bits da porta. Exemplo i=0011   ~i=1100
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                                               _delay_loop_2(5000);
                               }

                }
}


Salve tudo clicando no ícone Save All e depois vá em Project > Build Configurations > Set Active > Release e finalmente  compile clicando no ícone Build All. Aparecerá 3 Warnings, as desconsidere.
Agora você tem duas opções ou grava no microcontrolador utilizando direto o AVRDude pelo eclipse ou use o AVR Studio ou outro programa similar. Para gravar direto com o AVRDude clique no ícone

 
Resultado final no meu Kit STK500

Video YouTube: