segunda-feira, 17 de janeiro de 2011

Introdução ao Launchpad com o IAR Workbench e primeiro exemplo

Neste post pretendo mostrar as etapas necessárias para começar a programar o kit Launchpad da Texas, como já avisado na própria documentação do kit, para que haja uma boa compreesão são necessários conhecimentos mínimos em programação (linguagem C) e conceitos básicos de eletrônica.

Com este primeiro exemplo tentarei criar a minha versão do "quickstart guide" do kit, mas ao invés de utilizar os exemplos que o acompanham e o compilador escolhido pelo quickstart original, utilizarei o segundo compilador fornecido pela Texas, o IAR Embedded Workbench Kickstart, e um exemplo simples criado por mim.


Então como primeiro passo, baixe e instale este compilador (o link para download pode ser encontrado na wiki criada pela texas, aqui)
Após a instalação ser bem sucedida, conecte a placa ao PC utilizando o cabo USB fornecido com o kit.
Neste momento, seu Windows instalará automaticamente os drivers corretos (já fornecidos pelo IAR) e a placa estará com os dois LEDs vermelho e verde piscando, isso significa que o exemplo pré-carregado ao microcontrolador presente na placa (MSP430G2231) está rodando (para mais informações a respeito desse demo, assista a esse vídeo da texas).
Com tudo já testado e funcionando, vamos partir para o compilador:

Execute o IAR Embedded Workbench e crie um novo projeto indo em Project > Create New Project e selecione C > main como na imagem:
e dê OK, agora salve o projeto em uma pasta de sua escolha com o nome que desejar (no meu caso exemplo1), a seguinte tela aparecerá:
Clique para ampliar

Agora copie o seguinte código de exemplo, apagando o código já escrito:


#include "io430.h"
#include "intrinsics.h"
 
#define vermelho P1OUT_bit.P1OUT_0 // relaciona o nome ao pino do led
#define verde P1OUT_bit.P1OUT_6    // relaciona o nome ao pino do led
 
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
P1DIR = (BIT0 + BIT6);  // configura os 2 pinos ligados aos leds como saida
for(;;) //inicia um loop infinito
{
vermelho = !vermelho;    //inverte o estado do led vermelho
verde = vermelho;       //copia o estado do vermelho para o verde
__delay_cycles(200000);         //gasta 200.000 ciclos do uC = 0,2 segundos
};
}

Deixando deste modo:
Clique para ampliar
Agora vem a parte mais importante e a qual eu demorei para aprender por não encontrar as informações, vamos configurar o projeto para poder realizar a gravação:
selecione o nome do projeto na caixa do lado esquerdo, clique com o botão direito do mouse e clique em Options :
 Agora na próxima janela vamos definir o modelo do microcontrolador que estamos usando, clique na opção General Options do lado esquerdo e clique no botão ao lado da caixa de texto do item Device , selecione o modelo MSP430G2231 (MSP430Gxxx Family > MSP430G2231) :
Agora vamos selecionar as opções de gravador e depurador corretas, na mesma janela anterior selecione o item FET Debugger do lado esquerdo e confirme que na caixa Connection esteja selecionado o Texas Instrument USB-IF, deste modo:
E por útimo, ainda na mesma janela selecione o item Debugger do lado esquerdo e defina como Driver o item FET Debugger, deste modo:
Pronto, tudo configurado, agora dê OK e vá em Project > Compile , aparecerá uma caixa para salvar o workspace, dê um nome a ele, se tudo der certo aparecerá no console (na parte de baixo) a mensagem "Done. 0 error(s), 0 warning(s)".
Agora vamos rodar o programa na placa, com a placa ligada ao PC, vá em Project > Download and Debug, o programa será transferido para a placa e ao final o compilador entrará no modo depurador, agora para rodar clique em go:
Clique para ampliar
Agora os leds de sua placa começarão a piscar, mostrando que o código está funcionando!
para sair do modo depurador e voltar ao editor de código, clique no X vermelho próximo ao botão go, experimente alterar o código e ver os resultados, por exemplo para que as luzes se alternem adicione um not ( ! ) à igualdade do led verde: "verde = !vermelho", para alterar o tempo, mude o número de ciclos gastos para temporização (considerando que cada ciclo utiliza 1us), feitas as alterações, recompile e transfira de novo para a placa do mesmo modo já explicado.

nos próximos posts serão abordados os periféricos do microcontrolador, como timers, ADC, USI, etc.

Deixe seu comentário com críticas / sugestões  :)

4 comentários:

  1. Muito bom!!! Me ajudou muito, obrigada

    ResponderExcluir
  2. Muito bom mesmo, camarada. Parabens por compartilhar esse conhecimento.

    ResponderExcluir
  3. Muito bom cara, acabei de comprar uma para brincar também.

    ResponderExcluir
  4. Eu não consigo entender este microcontrolador da Texas... fico maluco de raiva por não conseguir colocar nada pra funcionar. o #define vermelho ... não reconhece... aparece o tempo todo que está indefinido... o que será que pode ser ? abraços at.Julio

    ResponderExcluir