====== 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.