====== IDE Eclipse ======
===== Criar novo projecto =====
PAra escrever um programa para o controlador é necessário criar um novo projecto. O projecto inclui tipicamente diferentes ficheiros como código fonte, ficheiros de cabeçalhos, programas compilados, etc. É fortemente acomselhado criara uma nova directoria para cada projecto (uma das opções do Assistente de Novo Projecto).
Os seguintes passos tem de ser completo quando é criado um novo projecto com a ajuda do assistente:
**1.** Inicializar Eclipse (Robotic HomeLab IDE) e selecionar novo projecto. Se o software foi instalado de fresco, a directoria //Workspace// terá de ser criada. Para fazer isto selecione a localização da directoria //Workspace// na janela principal onde o repositório será criado.
{{:software:eclipse:eclipse0.jpg?520|}}
{{:software:eclipse:eclipse1.jpg?500|}}
Para criar um novo projecto, selecione no menu //File -> New -> C project//. Insira o nome do projecto e prima //Next//.
**2.** Configuração do projecto na caixa de diálogo deverá ser selecionada como only Release.
{{:software:eclipse:eclipse3.jpg?400|}}
**3.** Na janela seguinte, o tipo de controlador e a frequência de utilização tem de ser selecionados. O microcontrolador do Robotic HomeLab (v5) é o //ATmega2561// funcionando há frequência 14745600 Hz. Para concluir a configuração do novo projecto prima //Finish//.
{{:software:eclipse:eclipse4.jpg?400|}}
**4.** Depois disto a interface de utilizador para desenvolvimento do programa irá abrir. Antes de começar a escrever código é preciso criar um novo ficheiro para conter o código fonte do programa. Para fazer isso, clique com o botão direito do rato no projecto, selecione //New -> Source File// e insira um nome para o ficheiro, que deverá acabar com a extensão ".c". É recomendado que o nome principal do programa seja "main.c". Depois de primir //Finish//, o novo ficheiro é criado e aberto no ambiente de desenvolvimento.
{{:software:eclipse:eclipse5.jpg?400|}}
**5.** Antes de começar a escrever código, é aconselhável fazer algumas alterações às preferências do ambiente de desenvolvimento para maior comodidade. Selecione do menu //Window - Preferences// e navege no menu de àrvore da esquerda até //General -> Workspace// e selecione a opção //Save automatically before build//
{{:software:eclipse:eclipse6.jpg?400|}}
**6.** Para testar o correcto funcionamento do Eclipse, o seguinte código fonte pode ser copiado para o ambiente de desenvolvimento e compilado. Para compilar pode-se usar a combinação de teclas de CTRL+B
//A simple test code which is not using HomeLab library
#include
int main(void)
{
unsigned int x,y;
// Set pin PB7 as output
DDRB = 0x80;
// Infinite loop
while (1)
{
// Invert pin PB7
PORTB ^= 0x80;
y=3200;
while(y--){
x=260;
while(x--){
asm volatile ("nop");
}
}
}
}
Para uma compilação com sucesso é necessário que o código não tenha erros e que o compilador encontre todos os ficheiros de cabeçalho necessários. Uma compilação com sucesso é indicada na janela //Problem// como vazio (ou em alguns casos alguns erros //Warning//) e na janela //Console// como output do compilador que por exemplo neste caso seria:
AVR Memory Usage
----------------
Device: atmega2561
Program: 308 bytes (0.1% Full)
(.text + .data + .bootloader)
Data: 0 bytes (0.0% Full)
(.data + .bss + .noinit)
Finished building: sizedummy
{{:software:eclipse:eclipse7.jpg?520|}}
Se o código tiver erros ou os ficheiros de cabeçalho não forem encontrados, então na janela //Console// será indicado o número de erros e descritas as possivéis falhas em cima.
../main.c: In function 'main':
../main.c:23: error: expected ';' before 'while'
../main.c:13: warning: unused variable 'x'
make: *** [main.o] Error 1
Também a janela //Problems// indica várias mensagens de erro e correspondente localização no código marcado com icon de erro.
{{:software:eclipse:eclipse8.jpg?520|}}
**7.** Para utilizar a biblioteca HomeLab, é assumida a correcta instalação no sistema operativo seguindo as instruções indicadas. Para cada projecto a biblioteca tem de ser incluida na lista de objectos linkáveis nas opções de projecto. Para fazer isso, abrir primeiro: //Project -> Properties// e depois na àrvore do lado esquerdo //C/C++ Build -> Settings//, e //Tool Settings -> AVR C linker -> Libraries//. Seleccionar na janela que apareceu na direita debaixo de //Libraries (-l)// o icone //Add...// e insira na caixa de diálogo "homelab2561". Depois prima //OK// e novamente //OK//.
{{:software:eclipse:eclipse10.jpg?520|}}
**8.** Para testar a biblioteca HomeLab pode ser utilizado o seguinte código fonte, quando copiado junto do código prévio e compilado. Novamente, pode utilizar a combinação de teclas CTRL+B.
//A simple test code which uses HomeLab library
#include
#include
int main(void)
{
// Set pin PB7 as output
DDRB = 0x80;
// Infinite loop
while (true)
{
// Invert pin PB7
PORTB ^= 0x80;
hw_delay_ms(500);
}
}
Se a compilação deste código também ocorrer com sucesso, o ambiente de desenvolvimento foi configurado correctamente.
===== Carregar código para o microcontrolador =====
**1.** Conectar a placa do microcontrolandor ao PC utilizando um cabo USB. Depois da ligação estabelecida deverá acender um pequeno LED verde com a etiqueta de PWR (depois de algum tempo na primeira ligação).
**2.** Configurar opções do programa loader (AVRDude). Para isto abra novamente as opções do projecto //Project -> Properties// e na àrvore da esquerda selecione //AVR -> AVRDude//, depois //Programmer configuration -> New//. A caixa de diálogo que abre não necessita alterações, basta premir //OK//. Se estiver selecionado prima //Apply// e depois //OK//.
{{:software:eclipse:eclipse9.jpg?520|}}
É importante verificar que na lista //Programmer configuration// algo pode ser selecionado e por defeito será: //New Configuration//.
{{:software:eclipse:eclipse11.jpg?520|}}
**3.** Se o módulo de microcontrolador HomeLab estiver ligado ao PC, poderá agora tentar carregar o programa compilado para o microcontrolador. Para tal simplesmente prima o icon AVR ou use o atalho CTRL + ALT + U no teclado.
Como efeito deste programa, o LED on-board (PB7) deverá começar a piscar. Se o programa funcionar, deverá ter agora completado com sucesso o seu primeiro programa no ambiente de desenvolvimento.
Parabéns!
{{:kit:kit_2561_test.jpg?400|}}
===== Usando variáveis de virgula fluctuante =====
Por vezes é necessário utilizar em programas AVR variáveis de virgula fluctuante. Para utilizar em cálculos e apresentá-los com funções do tipo //printf//, para tal serão necessárias fazer as seguintes alterações nas configurações do projecto:
**1.** Abrir as configurações do projecto no menu //File → Properties//. No painel da esquerda abrir //AVR C Linker → Libraries//, onde adicionalmente à biblioteca do HomeLab outros objectos da biblioteca necessiram ser incluiros //printf_flt// e //m// (libprintf_flt.a ja libm.a).
**2.** Depois abrir //AVR C Linker → General// e na caixa de //Other Arguments// adicionar a linha //-uvfprintf//.
{{:examples:eclipse:eclipse_floating_point_libraries.png?520|}}
{{:examples:eclipse:eclipse_floating_point_printf.png?520|}}
**3.** Premir OK e fechar a janela de configurações.