AVR SD  READ BITMAP   NOKIA 3110
Autor: Ronaldo | Publicado: 2013-08-31T08:44:00-07:00






ATMEGA32 CARTÃO SD e LCD NOKIA 3110
Este projeto não é novidade redição de 2004, envia imagens de arquivos gravados no cartão SD para o LCD NOKIA 3110, também pode ser adaptado para outros displays gráficos.O software foi desenvolvido na plataforma codevisionavr, que já tem as bibliotecas para cartão SD e GLCD.
Nesta versão não usei a biblioteca Philips PCD8544&nbsp;do codevision, porque ela não envia dados hexadecimal para o LCD, por isso crei uma função que envia texto e imagens para o LCD NOKIA .




  

Vídeo1- Envia todos arquivos de modo sequencial, com extensão .h do cartão SD para o lcd nokia.

















Envio  sequêncial de arquivo


Inicialmente o diretório do cartão é lido, e lê os arquivos encontrados com extensão “h” em minúsculo.No diretório é lido o nome e o tamanho do arquivo. O tamanho é usado como contador para a rotina de envio de dados.&nbsp;O arquivo a ser enviado é aberto e  todos os dados são enviados e após o envio,  o arquivo é fechado, abre o próximo arquivo e o ciclo repete até o ultimo arquivo.


Os dados do arquivo para o LCD são do tipo hexadecimal. No arquivo os dados estão em ASCII. O programa lê 2 bytes ASCII e converte em 1 byte hexadeciamal e enviado.




Durante a transmissão se houver algum erro de arquivo ou acesso ao cartão SD, é enviada uma mensagem com erro específico.O programa pode ser adaptado para enviar arquivos de subdiretório.



Simulação no proteus


As versões podem ser simuladas no proteus com LCD nokia, que podem ser baixado no link abaixo:.&nbsp;

http://projectproto.blogspot.com.br/2010/11/nokia-lcds-proteus-vsm-models.html





Conversão de aquivo

O arquivo de imagem é convertido pelo programa '&nbsp;lcd image encode', no&nbsp;link abaixo, onde o usuário seleciona o contraste da imagem.&nbsp;



Dados da imagem covertida:

const unsigned char image[n] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0xC0, 0x80, 0x80, 0x00, 0x00, 0x80, 0x80, 0xC0, 0xC0, 0xC0, 0x80, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80};



Antes de gravar o arquivo no cartão SD, deverão ser removidos os seguintes caracteres:

cabeçalho:const unsigned char image[504] =

Chaves { }virgulasespaço0x&nbsp;

ponto e virgula ;Arquivo pronto para gravação.

0000000000008080C0C0C0C0808000008080C0C0C08080800000000080C0C08000000000000080

Na próxima etapa, irei enviar os dados do arquivo original convertido pelo programa lcd image encode.


Downloads


Aquivo de imagem do cartão SD&nbsp;- SD IMAGE

Envia arquivos sequencial&nbsp;-&nbsp;sends batch file with the same extension

envia 1 arquivo por vez&nbsp; -&nbsp;send a file by name


Programa conversor de imagem para lcd&nbsp; - image convert

Sites de referência
No endereço abaixo tem uma versão para PIC, que modifiquei do MPLAB+C30  para o codevisionavr .
http://projectproto.blogspot.com.br/search/label/LCDs
No site de &nbsp;chan.org/&nbsp;&nbsp;tem informações sobre FAT para serem usadas em sistemas embarcados.

 No mesmo site tem esta versão reduzida&nbsp;&nbsp;Petit FAT&nbsp;para leitura e escrita em cartão SD, ideal para microcontroladores com pouca memória, pois ocupa apenas 44 bytes memoria RAM e &nbsp;tem tamanho &nbsp;de 2K a 4K de programa (ROM).







<!--[endif]-->