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.
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.
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.
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.
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
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 <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"); } } } }
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
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.
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.
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 <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); } }
Se a compilação deste código também ocorrer com sucesso, o ambiente de desenvolvimento foi configurado correctamente.
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.
É importante verificar que na lista Programmer configuration algo pode ser selecionado e por defeito será: New Configuration.
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!
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.
3. Premir OK e fechar a janela de configurações.