Perguntas Frequentes: Microcontroladores PIC18 - Aprenda e Programe em Linguagem C

> Onde posso baixar as bibliotecas do livro?

-> Os materiais de apoio estão disponíveis no site da editora Saraiva (http://www.editorasaraiva.com.br), cujos links para download são:

512KB • Brinde respostas dos exercícios do livro, alguns códigos-fonte e bibliotecas.

127KB • Atualização códigos-fonte e bibliotecas para 3ª Edição.


> Qual é o ambiente de desenvolvimento adotado pelo livro?

-> O livro adota o ambiente de desenvolvimento MPLAB IDE e o compilador MPLAB C18, ambos gratuitos.

Clique aqui para efetuar o download do ambiente de desenvolvimento.

Clique aqui para efetuar o download do compilador.

Clique aqui para efetuar o download da biblioteca Microchip Libraries for Applications.

Gravador/depurador recomendado: PICkit 3.


> Como configurar o MPLAB IDE para evitar erros de compilação?

Uma das etapas mais importantes da configuração do MPLAB IDE é a definição do local padrão onde estão os arquivos e bibliotecas do compilador MPLAB C18, os quais foram criados após a sua instalação. Desta forma, quando os arquivos são incluídos no código, a partir da diretiva #include, o MPLAB IDE é orientado a buscá-los nas pastas definidas como padrão, evitando assim, erros de compilação causados pela impossibilidade de achá-los.

Após finalizar as etapas presentes no subtópico 2.3, informe o caminho dos subdiretórios do arquivo de cabeçalho e da biblioteca, conforme os passos seguintes:

    1. Clique em Project > Build Options... > Project;

    2. Clique na aba “Directories” e selecione a opção “Include Search Path”;

    3. Clique em “NEW” e defina o seguinte caminho: “C:\Arquivos de programas\Microchip\mplabc18\<versão do compilador>\h”

    4. Na mesma aba, selecione a opção “Library Search Path”;

    5. Clique em “NEW” e defina o seguinte caminho: “ C:\Arquivos de programas\Microchip\mplabc18\<versão do compilador>\lib”

Atenção!

A partir da versão v3.37, os arquivos e bibliotecas serão armazenados nos seguintes locais:

  • Arquivos: C:\Arquivos de programas\Microchip\mplabc18\<versão do compilador>\h

  • Bibliotecas: C:\Arquivos de programas\Microchip\mplabc18\<versão do compilador>\lib

Nas versões anteriores, temos:

  • Arquivos: C:\ MCC18\h

  • Bibliotecas: C:\ MCC18\lib


> Copiei um exemplo do livro, mas no momento da compilação, aparece o seguinte erro: “Error: syntax error”.

Resposta: O compilador está indicando que há um erro de sintaxe. Verifique se os comandos estão corretamente finalizados com ; (ponto e vírgula). Este é um dos erros mais comuns.

Observação: Diretivas (#) não usam ; (ponto e vírgula).


> Não estou conseguindo reproduzir o exemplo do Capítulo 8 – “Display LCD 2x16”. O exemplo é compilado sem nenhum erro, mas o display não funciona.

Resposta: A biblioteca biblioteca_lcd_2x16.c, disponibilizada para download, continha um erro no código de inicialização do display LCD 2x16.

A biblioteca já foi corrigida. Versão atual: v0.1.

Observação: Caso os caracteres do display LCD alfanumérico não estejam aparecendo no visor, verifique se a tensão no pino V0 (contraste) do display está entre 150mV e 500mV. Se for o caso, ajuste o valor do potenciômetro.


> A EUSART não está funcionando corretamente.

Foi constatado que a função baudUSART( ), do compilador MPLAB C18 v3.32, não está alterando, corretamente, os registros do módulo EUSART. Há duas soluções para este problema.

Primeira Solução.

Substituir a função baudUSART( ), por exemplo:

baudUSART (BAUD_8_BIT_RATE //Gerador de 8bits.

& BAUD_AUTO_OFF // Desabilita o auto baud rate.

& BAUD_WAKEUP_OFF); // Desabilita o auto-wake-up

pelas instruções:

BAUDCONbits.BRG16 = 0; // Gerador de 8bits. (0 – Gerador de 8bits e 1 – Gerador de 16bits)

BAUDCONbits.ABDEN = 0; // Desabilita o auto baud rate. (0 – Desabilita e 1 – Habilita)

BAUDCONbits.WUE = 0; // Desabilita o auto-wake-up. (0 – Desabilita e 1 – Habilita)

Observação: No modo síncrono também existe a instrução BAUDCONbits.SCKP, onde 0 define o nível baixo como inativo e 1 define o nível alto como inativo.

Segunda Solução.

Aplicar a máscara OU (#define USE_OR_MASKS) nas funções. Veja o exemplo seguinte:

#include <p18f4550.h> // Arquivo de cabeçalho do PIC18F4550.

#define USE_OR_MASKS // As funções utilizam uma máscara ‘OU’

#include <usart.h> // Adiciona a biblioteca contendo as funções da USART.

...

OpenUSART (USART_TX_INT_OFF //Interrupção de transmissão desabilitada.

| USART_RX_INT_OFF //Interrupção de recepção habilitada.

| USART_ASYNCH_MODE //Modo assíncrono.

| USART_EIGHT_BIT //Dado de 8bits.

| USART_BRGH_LOW //Alta velocidade

, 77); //Baud rate de 9600bps. (Fosc = 48MHz)

baudUSART (BAUD_8_BIT_RATE //Gerador de 8bits.

| BAUD_AUTO_OFF //Auto baud rate desabilitado.

| BAUD_WAKEUP_OFF); //Desabilita o auto-wake-up.

Observação: Se a diretiva #define USE_OR_MASKS for inserida no código, todas as constantes das funções do compilador devem ser separadas por um OU lógico ( | ).