Mostrando postagens com marcador Ferramentas - IO Wizard. Mostrar todas as postagens
Mostrando postagens com marcador Ferramentas - IO Wizard. Mostrar todas as postagens

sexta-feira, 7 de agosto de 2009

Mais código! Configurando AD com o IO Wizard.

Continuando nossa saga, vamos agora fazer a configuração do ADC usando o IO Wizard.O procedimento é basicamente o mesmo, se já fez toda a configuração do post anterior, é só abrir o IO Wizard e fazer a configuração abaixo do ADC.

Eu usei o AN1, pino 14 do micro, mas nada impede o uso de qualquer outra entrada do conversor.

Uma coisa interessante para se fazer é alternar a entrada escolhida e na janela de código gerado observar os registradores ch0, ch1 e ch2 mudando de acordo com a entrada selecionada. A configuração fica como na figura abaixo:




Já que vamos usar o ADC, por que não colocar um timer rodando também? Eu escolhi o Timer X por que gosto do nome, mas o Timer Z também pode ser usado para essa função!
Simples, selecione o Timer X, ative e selecione o modo de opeção timer.
O Timer X é um timer de 8 bits com um preescaler de 8, o que para mim é um timer de 16 bits, mas chamem como quiserem.

O registradores que determinam o tempo são os prex e o tx, preescaler e registrador do timer respectivamente.

Como selecionei sem divisão (no division) o timer está rodando a 20MHz, logo 50nS de período para cada incremento do preescaler.

A conta para saber o tempo é: t = (prex + 1) * (tx + 1) * período

No nosso caso: t = (249 + 1) * (79 + 1) * 50*10^-9 = 1*10^-3 = 1mS

Mais fácil que furar um olho, não? Veja na figura abaixo:

Eu usei ambos recursos em um projeto, aproveitando a paranoia da gripe suina, fiz um termometro com um LM35, claro que sem precisão, não usei uma referência boa, só o velho 7805 da placa e o LM35 ligado direto na entrada do ADC! Olha como ficou a montagem na placa.

Com o software rodando no micro, conectado a serial, Hyperterminal aberto, 19200 8-N-1, deve aparecer a tela abaixo:

Como sempre, o WorkSpace completo, LM35_serial.zip está na seção arquivos no site do grupo, para quem ainda não conhece:

http://groups.google.com.br/group/renesas_brasil

Até a próxima!

quinta-feira, 6 de agosto de 2009

Usando o código do IO Wizard.

Bom, se você seguiu todos os passos do post anterior, você deve ter em mãos, ou no local em que escolheu salvar os arquivos, 3 arquivos:

config.c - Este vamos usar

config.h - Este não vamos usar

sfr_R8C1Aconfig.h - Este já temos no nosso projeto, é o mesmo que o sfr_r81b.h

O config.h basicamente tem o protótipo de algumas funções e interrupções, nada que não possa ser reescrito no ktp.c, ou mesmo criar um ktp.h. Para manter as coisas simples, vou reescrever tudo no ktp.c. O outro arquivo que vamos solenemente ignorar é o que contém os special function registers (sfr para os intimos), pois já temos um no nosso projeto.

Vamos as modificações no ktp.c. Primeiro os includes, que no nosso caso é só um! No arquivo, antes do main escreva:

#include "sfr_r81b.h"

Pronto, agora como você pode ver, temos o main mas não o protótipo dele, logo, escreva antes do #include o famoso void main(void); uma outra função que vamos precisar de protótipo é a init, então já coloca o protótipo dela, juntando tudo fica assim:

void main(void);
void init(void);
#include "sfr_r81b.h"


Agora é só copiar do arquivo config.c da linha int i=0; para baixo até as funções de interrupção da serial, essas não vamos precisar, e colar no lugar do main no arquivo ktp.c, fácil não? Se tudo correr bem seu arquivo deve ficar assim:


Falta só uma coisa para nossa serial funcionar, primeiro na configuração do IO WIzard ele faz a padrão, ou seja, apenas transmite, então mude o re_u1c1=0 para re_u1c1=1, este é o Receive Enable bit do registrador u1c1, ok?

Também não foi feita a configuração dos IO's a serem utilizados, então temos que colocar logo abaixo desta linha a linha:

u1sel0=1; u1sel1=1;

Que faz a seleção dos pinos do TX e RX da UART1.

É claro que vou colocar esse arquivo no files do grupo, se ainda não entrou, entre!http://groups.google.com.br/group/renesas_brasil

Procure pelo arquivo mod1.zip, descompacte no workspace que você já tem, substituindo o ktp.c existente e teste.

Até a próxima.

quarta-feira, 5 de agosto de 2009

WorkSpace pronto, o que colocar lá?

Agora que você já tem o seu WorkSpace pronto e compilando sem erros, que tal colocar uns erros, quer dizer, códigos lá?

Para isso precisamos de duas coisas, o manual de hardware do R8C/1A, que você pode obter aqui: Manual de Hardware


Com este arquivo em mãos, vamos ao que interessa, não precisa necessáriamente ler o bicho inteiro, seria interessante, mas vamos por partes. Para iniciar vamos usar uma ferramenta da Renesas, o IO Wizard, com ele você gera código para os periféricos do micro, inicialização do clock e interrupções mesmo sem saber o que está fazendo.

Claro que não é o ideal, mas é um bom começo. Após baixar o IO Wizard, instalar e rodar, vai cair nestá janela.


Claro que eu já selecionei ali algumas coisa que vamos precisar, como Series, Group e Part no., além disso também já escolhi o CPU Clock: Main clock, a frequência do mesmo, 20MHz, CPU Division Clock: No division e o Main Clock Drive Capacity: High. Todas essas opções são para alta performance e consumo de energia, mais para frente estudaremos modos de economizar energia, ok? Clique no NEXT.


Agora, o que colocar de código nesta placa? Bom, como já temos uma porta serial ligada no micro e isso conectado ao PC, por que não configurar a UART1, que é a que está ligada. Abaixo vemos que os pinos da UART1 estão no 2 (p3_7/TXD1) e no 9 (p4_5/RXD1) do micro.





Isso dito, precisamos fazer o pino 2 funcionar como saída, o 9 como entrada não precisa se preocupar, todos os GPIOs tem como configuração padrão entrada. Então vamos clicar no Port3 e selecionar o pin7 como entrada, fica como na figura abaixo:



Após essa configuração simples, vamos para uma complicada, a porta serial, selecione a UART1 e faça as configurações como na figura abaixo: Qualquer dúvido sobre isso, me escreva ou consulte o manual de hardware!



Por último, clique em Generate vai abrir a janela abaixo, escolha onde quer salvar o código gerado e clique no OK.



Agora é só copiar e colar as partes que interessam no seu código. Isso fica para o próximo post. Até mais!