Table of Contents

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.

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.

 

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.

É 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!

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.

3. Premir OK e fechar a janela de configurações.