sexta-feira, 9 de dezembro de 2011

Bibliotecas para o hardware


Olá, caros seguidores, após um tempo fora voltamos nesse post para desenvolver nossas bibliotecas para o hardware do nosso projeto com o MSP430F2013.

Primeiramente iremos testar o “Hello World” no LCD, usando 4 bits, isso nos dará um pouco mais de trabalho.

Criaremos, então, uma biblioteca “basico.h” que tem funções básicas para qualquer programa que iremos utilizar:

//funções de bit
#define BitSet(arg,bit) ((arg) |= (1<<bit))
#define BitClr(arg,bit) ((arg) &= ~(1<<bit))
#define BitFlp(arg,bit) ((arg) ^= (1<<bit))
#define BitTst(arg,bit) ((arg) & (1<<bit))



Agora criaremos nossa “lcd.c”, esta fará todas as operações por funções para deixar mais fácil utilizarmos o LCD posteriormente.

Começando pelo delay, para inicializaremos o LCD, ele precisa de um tempo antes de receber comandos, para isso criaremos um gasto de tempo, por loop, menor de 40us e um maior de 2ms, que usa o de 40us.

Na função de inicialização configuramos as direção dos terminais com BitSet, damos o delay, e enviamos os comandos de 4 bits 2 linhas, modo incremental, blink, apagar o display, e mandar para a posição inicial.

Para enviar comando criamos uma função que pega o comando de 8 bits faz o bitshift de 4, manda ler 4 e depois os outros 4. Já para enviar dados é praticamente o mesmo esquema, só que no início ao invés de dar BitSet (P1OUT,RS) damos BitClr, que é o modo dados.

Por fim temos a função que muda a posição da linha, por envia comando.

Assim, por último, criemos a “lcd.h”:

#ifndef LCD_H
                #define LCD_H
                void Delay40us(void);
                void Delay2ms(void);
                void EnviarComando(unsigned char cmd);
                void EnviarDados(unsigned char valor);
                void InicializaLCD(void);
                void MudaPosicao(unsigned char lin, unsigned char col);

#endif

Todas as bibliotecas podem ser encontrada no nosso site clicando aqui.


 Com isso já temos as bibliotecas prontas, o programa iremos criar no próximo post.

Até logo!

Nenhum comentário:

Postar um comentário