Ir ao conteúdo
  • Cadastre-se

Bibliotecas para HI-TECH C para PIC10/12/16/18


edu.

Posts recomendados

Opa,

Se não me engano a diretiva WDTDIS era usada em versões anteriores do HI-TECH, atualmente usa-se o que coloquei nos exemplos. Para saber todos os registradores e definições disponíveis para seu MCU deves "seguir" os includes do compilador até achar o cabeçalho do seu PIC. Na pasta includes dentro da pasta do HI-TECH você encontra o arquivo pic.h, dentro dele há algumas definições e alguns includes, e você deve ir atras até chegar ao include do seu pic. Vai ser um arquivo do tipo picxxfxxx.h, mas lembrando que alguns MCUs compartilham o mesmo cabeçalho, então pode não haver o arquivo com o nome do seu PIC mesmo. O 16f690 é assim, não me lembro de cabeça qual o nome original, mas é um dos que são de sua familia, que estão juntos no datasheet.

Abraço, desculpe o atraso.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Obrigado Edu. Eu vi, esta tudo la. Valeu mesmo.

Bom, com relação a utilização do display LCD e teclado com o MCU, segundo o que voce postou, tem que ser feito tudo na "unha" mesmo né ?

Fiz um curso de Arduino UNO que as funções de escrever e scroll já tem tudo pronto é só fazer a chamada. Pelo que vi no PIC a coisa é mais profissional o Arduino é mais academico.

Qual é sua sugestao e por onde posso começar a interagir para fazer um projeto teste neste sentido utilizando PIC. Tem algum manual, link que ajuda , alem é claro da sua contribuição dos codigos postados ?

Confesso que estou tendo um pouco de dificuldade para entender o codigo, pois com havia dito estou no começo desta caminhada de MCUs.

Link para o comentário
Compartilhar em outros sites

Opa,

Você tem dois caminhos para iniciar, programando em C ou em ASM. Se você já possuí uma base em C siga por ai que será mais fácil no começo, mas, depois de estar mais seguro recomendo que faça alguns programinhas em ASM para pegar mais o funcionamento interno do MCU e saber a fundo o que que é feito de modo a poder otimizar seu próprio código em C.

Assim como todo mundo, inicie piscando LEDs e lendo botões. Baixe a IDE da Microchip, o MPLAB (eu estou acostumado com o MPLAB normal, tem o MPLAB X que eu nunca usei e não poderei te ajudar). Com a IDE você poderá programar em ASM. Se quiser em C, busque pelo compilador HI-TECH C, para PIC16.

Estou supondo que você vai iniciar em C, tem algumas coisas que deves cuidar. No seu código deves incluir sempre o cabeçalho htc.h. Quando você cria o projeto e escolhe qual o PIC que vai usar há uma série de definições que são feitas. Esse cabeçalho se baseia nessas definições e inclui os cabeçalhos padrões com as funções básicas e os registradores do seu MCU.

Depois deves definir a frequência do "cristal", que na verdade é a frequência do circuito oscilador, independente se for cristal ou não. Com base nessa sua definição o compilador vai poder calcular as funções de delay para gerar atrasos. Em seguida vem os configuration words, neles você vai fazer as configs mais básicas, eu recomendo tirar o MCLR, WDT e habilitar o PWRT.

Por fim vem o main(), onde vais colocar o seu código. Tudo isso que eu falei e ainda mais está disponível no User Guide do HI-TECH, que se encontra na pasta do compilador em docs/manual.pdf (se estiver com o projeto aberto basta apertar F11).

Poste ai o MCU e a linguagem que poderemos ajudar mais.

Ah, estava me esquecendo, esse negócio de fazer na unha é relativo. Você vai encontrar códigos prontos para o PIC assim como os do arduino. Um exemplo é o que eu já postei, basta incluir o .c e definir os pinos que podes usar o LCD que funciona. PORÉM, creio que seja importante entender o que está por trás, uma vez que sabes como funciona o negócio, podes pegar um código pronto de qualquer procedência, dar uma lida, ajeitar para a sua aplicação e mandar bala. Mas antes tens que entender o que está acontecendo, para depois fazer isso. ;]

Abraço, Eduardo.

Link para o comentário
Compartilhar em outros sites

Desculpe não ter comentado mais depois de alguma luta, já havia consegui colocar o LED piscar antes deste post, utilizando o PIC12F629 COM MPLAB + HITECH em C pois é a linguagem que tenho um pouco de dominio, já que ASM não tenho quase nada de conhecimento. Sobre o gravador utilizo o MPLAB ICD2.



#include <htc.h>

__CONFIG(
FOSC_INTRCIO & //OSCILADOR
WDTE_OFF & //WATCHDOG
PWRTE_OFF & //POWER-UP
MCLRE_ON & //GP3/MCLR pin function is MCLR
BOREN_OFF & //Brown-out
CPD_ON & //Program Memory code protection
CP_OFF //Data Memory code protection
);

#define _XTAL_FREQ 4000000
#define ON 1
#define OFF 0

void main(void)
{

TRISIO4 = 0; //TRISIO4 = 0b00000000;
TRISIO5 = 0;

while(1)
{

GPIO4 = OFF; //GP4 = 1;
GPIO5 = ON;
__delay_ms(300);

GPIO4 = ON;
GPIO5 = OFF;
__delay_ms(300);

}
}

Agora to na luta buscando exemplos, bibliotecas prontas para fazer um PIC18LF4520 escrever em um LCD e interarir tambem com botões, teclados ( interagir com a serial do pc) ...

Você tem mais alguma dica/sugestão para eu poder prosseguir ??????

Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois...

Opa desculpe a demora.

Consegui compilar o codigo utilizando o HI-TECH C Compiler for PIC18 MCUs. Agora estou com duvida para compatibilizar o codigo do LCD pois o que estou utilizando me parace que é um pouco diferente do que voce postou. Estou utilizando o LCD TECH1602B SERIES.

O endereçamento das linhas é até tranquilo pois ja estão em HEX, mas os comandos de Clear, Display dentre outros é que não consegui pois não sei como fazer

Ex.:

Address for line 1 00 01 02 03 04 05 06 07 08 09 1A 1B 1C 1D 1E 1F

Address for line 2 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F

Parameter RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0

Clear Display 0 0 0 0 0 0 0 0 0 1

Display on/off 0 0 0 0 0 0 1 D C B

Como fazer esta conversao ?

Link para o comentário
Compartilhar em outros sites

Me parece igual o comando de clr, e o outro não lembro a ordem dos bits mas também me parece igual. Procure o datasheet do teu display e compare com o normal, mas é quase certo que é igual, isso costuma seguir um padrão de interface. Já testastes na prática se funciona? Ou em algum simulador?

Link para o comentário
Compartilhar em outros sites

Olá pessoal!

Estou iniciando a programar PIC em linguagem C, utilizando o ccs e seus códigos prontos. Dae me deparei com o hi-tech e não consigo faze muita coisa. Queria saber se tem algum livro que vocês possam me recomendar para que eu aprenda a programar em C utilizando o hi-tech e sua linguagem pura?

Vaaleu pessoal!

Link para o comentário
Compartilhar em outros sites

A linguagem do compilador é, em si, a linguagem C básica. Qualquer livro de linguagem C servirá, mas recomento em especial o "The C Programming Language", dos próprios criadores da linguagem.

Quanto ao compilador, se for no diretório do mesmo e entrar na pasta "docs", vais encontrar o manual do compilador, lá há todas as informações que precisas. Se buscares mais profundamente no google vais encontrar mais material de outras fontes, te recomendei os garantidos.

OBS.: para programares com o CCS e meus códigos é preciso adaptar pois o CCS tem suas peculiaridades.

;]

Link para o comentário
Compartilhar em outros sites

  • mês depois...

Como devo escrever o código do cabeçalho do meu código? Sendo mais específico, o que devo escrever, em qual ordem e com qual sintaxe entre os "includes" e as minhas inicializações e declarações de variáveis?

Como inicializo o "clock", como devo escrever os "fuses", o que vai dentro do "__CONFIG"?

Gostaria de ajuda, pois, estou começando com este compilador. Na verdade, antes programava apenas em assembly, começando a programar meus mcu's em C agora^_^. Agradeço a ajuda, (desculpa me meter no meio do tópico assim, também...:P).

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...

Vi alguns videos do MPLABx e fiquei interessado porém esbarrei na questão financeira rs. Alguém pode dizer quais são as limitações da versão free(estudante, se não me engano)? Me lembro que certa vez tentei usar uma IDE diferente da CCS C e tive problemas com as limitações da versão free, por exemplo na quantidade de linhas que se pode programar. Nas IDEs MPLAB free possui quais limitações?

 

Abraço.

Link para o comentário
Compartilhar em outros sites

  • 2 anos depois...
  • Membro VIP

Sim. Alguns nomes de registros podem ter sido minimamente alterados bem como alguns #define, macros, constantes e afins. Ou seja , só a "periferia". O núcleo do seu fonte em linguagem c pura pode ser compilado, obviamente.

Portanto hás de fazer algumas mínimas modificações-atualizações.

Dê uma olhadela nos #includes da versão atual e compare com os da antiga e hás de compreender melhor.

Link para o comentário
Compartilhar em outros sites

  • 3 semanas depois...
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...