Uma retomada nas atividades
E ai galera!!! Tudo beleza? Faz tempo que não posto conteúdo para vocês né? Sei que estou em dívida com vocês. Mas pretendo voltar aos poucos a alimentar o blog com conteúdos novos. Continue lendo
Archive for the ‘ Meus projetos ’ Category
E ai galera!!! Tudo beleza? Faz tempo que não posto conteúdo para vocês né? Sei que estou em dívida com vocês. Mas pretendo voltar aos poucos a alimentar o blog com conteúdos novos. Continue lendo
Olha só!!! Quase um ano sem escrever!!!
Pois é… a partir de hoje vou tentar, aos poucos, retornar às atividades do blog.
Confesso que escrever aqui me faz muita falta e que estou super surpresa pelo fato dos acessos só terem aumentado mesmo durante a minha ausência. Num único dia da semana passada cheguei a ter mais de 1250 acessos!!!! Continue lendo
Infelizmente sempre fui uma péssima autodidata. Mas, depois de ingressar no mestrado, não tive outra alternativa; a maior parte do conhecimento adquirido durante a pós-graduação é mérito único e exclusivo seu. Então o negócio é arregaçar as mangas e ir a luta.
A minha batalha no momento tem sido aprender a programar os micros da Freescale. Mais especificamente os da família Flexis. Para isso, como já comentei com vocês em outros posts, eu acabei adquirindo o kit de desenvolvimento DEMOQE128.
Quando procuramos informações à respeito do processador que esse kit possui, percebemos que para alguém que está engatinhando no assunto o começo é bem complicado!
Pensando nisso e, como sempre, com aquela ânsia de disseminar meus conhecimentos, decidi a partir de hoje ir colocando passo-a-passo minhas descobertas e avanços com este kit. Meu intuito é ajudar aqueles que, assim como eu, estão partindo do zero.
Bom, então vamos lá.
O que é mais trivial do que apertarmos um botãozinho e um led acender?!!! Vamos aprender a fazer isso então?
A DEMOQE128 dispõe de 7 leds e 4 chavinhas que podemos habilitar ou não no hardware via alguns jumpers. Mas não vou ficar me atentando à parte física da minha placa. Quero focar no CodeWarrior para que assim, seja qual for o seu processador ou kit, você consiga reproduzir a programação descrita aqui.
O primeiro passo é iniciarmos um novo projeto. Para isso, ao abrirmos o CodeWarrior IDE aparecerá a seguinte tela. Caso você não consiga visualizar esta tela basta acessar o menu “File” e em seguida a opção “Startup Dialog…” e então ela aparecerá.:
Nela clique em “Create New Project”. A seguinte tela aparecerá:
Nela você deve escolher o processador que está utilizando. No meu caso tenho um MC9S08QE128. Escolho também o modo de comunicação. Como estou utilizando a interface USB do meu kit, escolho a opção “P&E Multilink / Cyclone Pro” e dou “Avançar”. A próxima tela será a seguinte:
Nela damos um nome ao nosso projeto (por pura falta de criatividade o chamei de ChaveLed.mcp) e através do botão “Set…” dizemos onde queremos que ele seja salvo. E mais uma vez, damos “Avançar”.
Na tela seguinte, o CodeWarrior nos dá a possibilidade de adicionarmos ao nosso projeto algum arquivo que queiramos com uma função já existente, por exemplo. Como não tenho nenhum arquivo à acrescentar, vou apenas dar “Avançar”.
A próxima tela é essa mostrada abaixo. Ela é bastante importante. Nela escolheremos a opção “Device Initialization” que é uma ferramenta do CodeWarrior que torna mais simples a inicialização do micro e seus periféricos. E desta vez, substituímos o avançar por “Concluir”.
O software criará todo o básico para o seu projeto. A seguinte tela deverá se abrir:
Vamos então ao botão “Select CPU Package” para definir o processador quanto ao seu encapsulamento. No meu caso é um MC9S08QE128CLH.
Bom, a chavinha que eu usarei no meu programa está ligada à porta PTA2 do processador. Então precisamos configurar o bit 2 da porta A como entrada. Apertando o botão “PTA” que está desenhado dentro do esquema do nosso processador como mostra a imagem acima, a seguinte tela de configuração da porta será apresentada:
Devemos apertar o botãozinho roxo que fica ao lado de “Entire I/O port” para que possamos configurar cada bit separadamente. A seguinte tela será mostrada:
Clique no “+” ao lado de “Pin2”. Abrirão algumas opções:
Habilite o bit 2 da porta clicando no botãozinho roxo que fica ao lado de “Disabled”. Verifique se em “Direction” está dizendo que este pino é de entrada (Input) e dê “Ok”. A tela de configurações deverá estar assim antes do Ok:
Agora vamos configurar o led. O que eu vou utilizar está ligado ao bit 0 da porta PTC. Então, da mesma maneira que já fizemos antes, clicamos no botão “PTC” do processador esquematizado na tela principal, e novamente clicaremos no botãozinho roxo que fica ao lado de “Entire I/O port” para que possamos configurar cada bit separadamente. Em seguida clicamos no “+” ao lado de “Pin0”. Habilite o pino clicando no botãozinho roxo que fica ao lado de “Disabled”. Em “Direction” mude Input para “Output” e em “Pull resistor” selecione a opção “Pull up” e dê “Ok”. A tela de configurações deverá estar assim antes do Ok:
Feito isso, as configurações já estão prontas. Basta agora gerarmos os códigos em C. Para isso, basta clicarmos no botão “Generate Code”.
A seguinte tela aparecerá. Então, clique em “Generate”.
Na tela seguinte basta clicar em “Ok”.
Bom, olhando o manual do processador, veremos que o “nome” do registrador referente a chavinha é PTAD_PTAD2 e o referente ao led é PTCD_PTCD0.
Na árvore que fica do lado esquerdo da tela principal, dentro da pasta “Sources” estará um arquivo chamado main.c. Você deve abrí-lo. É nele que você colocará o seu programa principal e definiremos uma variável para cada um dos registradores que citei no parágrafo anterior.
O código já existente em main.c é:
#include <hidef.h> /* for EnableInterrupts macro */
#include “derivative.h” /* include peripheral declarations */
#ifdef __cplusplus
extern “C”
#endif
void MCU_init(void); /* Device initialization function declaration */
void main(void)
{
MCU_init(); /* call Device Initialization */
/* include your code here */
for(;;)
{
/* __RESET_WATCHDOG(); by default, COP is disabled with device init. When enabling, also reset the watchdog. */
} /* loop forever */
/* please make sure that you never leave main */
}
Você deverá então acrescentar as linhas em vermelho:
#include <hidef.h> /* for EnableInterrupts macro */
#include “derivative.h” /* include peripheral declarations */
#define CHAVE PTAD_PTAD2 /* Chama de “CHAVE” o bit 2 da porta PTA*/
#define LED PTCD_PTCD0 /* Chama de “LED” o bit 0 da porta PTC*/
#ifdef __cplusplus
extern “C”
#endif
void MCU_init(void); /* Device initialization function declaration */
void main(void)
{
MCU_init(); /* call Device Initialization */
/* include your code here */
for(;;)
{
LED = CHAVE; /* Toda mudança na porta PTA2 será transferida para a porta PTC0*/
/* __RESET_WATCHDOG(); by default, COP is disabled with device init. When enabling, also reset the watchdog. */
} /* loop forever */
/* please make sure that you never leave main */
}
Pronto. Nosso programa está feito.
Para compilá-lo e carregá-lo no seu processador aperte a tecla “F5” do teclado. A seguinte tela aparecerá:
Com o kit devidamente ligado e conectado ao PC, clique em “Conect (Reset)”.
Na próxima tela clique em “Yes”. (Observe que clicando em “Yes” você estará autorizando o reset da memória do seu processador. Vai apagar tudo, hem… :))
Na tela que abrir, na barra de ferramentas na parte de cima da tela tem um botão com uma seta verde. É ele que coloca a CPU em RUN. Clique nele e pronto!!! É só sair apertando o seu botãozinho para o led acender!!! 😉
Bom, antes de encerrar gostaria de agradecer publicamente a três pessoas que me ajudaram e ainda têm me ajudado muito nessa minha jornada!!! São eles os professores Marcelo Barros, Henrique Del Bianco e Roberto Quini. Meninos, muito obrigada mesmo por todo apoio, paciência e tempo despendido em me ajudar. Sempre serei grata a vocês.
Bom pessoal, por hoje é só. Espero ter ajudado.
Abraços!!!
Quando fui aceita na Unicamp para o mestrado, na primeira reunião com o meu orientador, ele me aconselhou a utilizar o kit da Freescale que tínhamos disponíveis em nosso laboratório.
Como 90% do desenvolvimento do meu projeto está sendo desenvolvido fora da universidade, surgiu a necessidade de eu adquirir um dos kits mencionados. Por uma questão de custo X benefício resolvi comprar a Demoqe128.
Este kit vem com dois processadores: um de 8 bits (plaquinha verde) e outra de 32 bits (plaquinha vermelha).
Além disso já vem com alguns periféricos como 8 leds, 4 chaves, um potenciômetro e, entre outros, um dos mais interessantes: um acelerômetro triaxial.
Ela é programada pelo CodeWarrior. Sinceramente tenho apanhado um pouquinho pra aprender a trabalhar com este software. Mas aos poucos estou aprendendo. 🙂
Nos próximos posts estarei falando um pouquinho melhor deste kit e colocando alguns exemplos de programação.
Espero ajudar a todos que estão começando a programar os processadores da Freescale.
Quem quiser saber mais a respeito da plaquinha, pode acessar a página da Freescale clicando aqui.
Um abraço a todos e até os próximos posts.