Ir ao conteúdo

MP Lab X C XC8 - Erro biblioteca Delay


Ir à solução Resolvido por Luiz Oscar Pilger,

Posts recomendados

Postado

Oi gente!!

Comecei a usar a IDE e o compilador XC8 essa semana, mas estou tendo uns problemas com as bibliotecas. Coloquei a de dealy porque é a primeira que eu deparei o problemas mas  as outras como  i2c, usart, timers etc também apresentam o mesmo erro. Já tentei reinstalar e atualizar tanto a IDE quanto o compilador mas sem sucesso. 

Tá ai as  imagens dos erros. Alguém pode me ajudar?

Capturar.PNG

erro 1.PNG

  • Membro VIP
Postado

Nem com bola de cristal bem lustrada dá pra saber.

 

Qual warning aparece é qual o if correspondente a este else? Baseie-se nisto pra achar a solução

  • Curtir 1
  • Membro VIP
Postado

você queimou a etapa do piscaled ?

 

É problema bem básico : o compilador não está achando o delay.h. você deve mostrar-lhe onde está. Tente se basear em algum projeto pronto ou algum exemplo. Talvez tenha como incluir os #include' s na aba project (não conheço este compilador). Também você pode deixar "explícito" pro compilador onde está o delay.h. Algo como:

#include "c:\users\hermsdorf\meus documentos\proteus\programas\circuito livrox\meu projeto\etc....delay.h"

Com o explorer ache o delay.h, copie sua localização da barra de endereço e cole no seu fonte. Não te esqueças das aspas.

  • Curtir 2
Postado

@Isadora Ferraz Na vdd a etapa do piscaled já passei faz uns anos hauhauhau

 

Esse compilador é uma versão mais nova do C18. e ao contrário dele esse não vem as bibliotecas basicas por algum motivo. Uma versão passada do  XC8 vinha com essas bibliotecas. Mas  enfim, vou pesquisar no site da microchip se essas bibliotecas estão disponíveis ou se devem ser baixadas separadamente. Obrigado pelo esclarecimento.  

  • Curtir 1
  • 2 semanas depois...
  • 2 semanas depois...
  • 6 meses depois...
  • Solução
Postado

Bom, estou usando o MPLABx desde 2013, quando a IDE mudou a interface (MPLAB -> MPLABX), e por consequência o compilador C18 migrou para XC8, nas primeiras versões o compilador ainda trazia as bibliotecas montadas no C18 (Peripheral Libraries - plib) como delays  ...
A partir do XC8 versão 1.35 ele passou a não trazer mais as bibliotecas plib.

Os códigos que "flutuam" na WEB são 99% voltados para o C18, até os livros publicados no Brasil ainda falam do C18

Como comentou Moley acima, no próprio xc.h tem funções nativas de tempo e macros.

No meu blog que uso para aulas sobre 18F4550 eu explico o uso das funções de tempo com a biblioteca xc.h
http://pilger-pic.blogspot.com.br/2016/11/funcoes-de-tempo.html

http://pilger-pic.blogspot.com.br/2016/08/atividade-temporizacao.html

 

O único cuidado é que as macros __delayus e __delayms, não aceitam parâmetros elevados como por exemplo __delayms(1000) (para gerar 1s).

Li uma explicação que seria que o compilador "tenta evitar" um loop por parâmetro elevado. ??? (não sei se seria isso)

Uma possibilidade é que o parâmetro da macro seja um byte onde o valor máximo seria 255 (não testei)

O que tenho feito é uma função que encapsula a macro e resolve o problema

 

Para quem quer usar as bibliotecas plib:

Como alternativa para quem quer usar as bibliotecas antigas é instalar o "Legacy Peripheral Libraries 2.0" você encontra o arquivo na área de downloads do compilador XC (mais abaixo na lista) instalando esse pacote ele adiciona a pasta "plib" na pasta include do XC. 

 

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...