Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
pt:examples:setup:eclipse [2015/12/07 20:47] – Criação deste novo documento. articapt:examples:setup:eclipse [2020/07/20 12:00] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== 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
 +
 +<code c>
 +//A simple test code which is not using HomeLab library
 +#include <avr/io.h>
 + 
 +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");
 +    }
 +  } 
 + }
 +}
 +</code>
 +
 +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.
 +
 +<code c>
 +//A simple test code which uses HomeLab library
 +#include <avr/io.h>
 +#include <homelab/delay.h>
 +
 +int main(void)
 +{
 + // Set pin PB7 as output
 + DDRB = 0x80;
 +
 + // Infinite loop
 + while (true)
 + {
 + // Invert pin PB7
 + PORTB ^= 0x80;
 + hw_delay_ms(500);
 + }
 +}
 +</code>
 +
 +Se a compilação deste código também ocorrer com sucesso, o ambiente de desenvolvimento foi configurado correctamente.
 +
 +<pagebreak>
 +
 +===== 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.
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0