Página 1 de 2

Compilador HI-TECH

MensagemEnviado: 26 Jan 2008 16:23
por Pask
Amigos, estou tentando começar a usar o compilador C da Hi-Tech para PIC's, mas percebi que existem algumas diferenças com relação ao compilador da CCS.
Vocês saberiam me dizer se existe algum lugar onde eu possa encontrar um livro baseado neste compilador ou um site onde eu possa obter instruções para utilizá-lo.
No site da editora Erica não encontrei nenhum livro sobre PIC que trate deste compilador.
Aguardo vocês. Obrigado.

MensagemEnviado: 26 Jan 2008 18:43
por Maia
Dá uma olhada em http://www.microchipc.com/
Qualquer dúvida posta aí que a gente tenta responder.
Abraços,
Maia

MensagemEnviado: 26 Jan 2008 19:29
por LeandroPIC
Na mesma pasta que vc estalou o Hi-tech, tem um PDF muito bom que explica tudo que vc precisa sobre Hi-tech, ele tambem trabalha com BIT, o resto é ANSI!

MensagemEnviado: 27 Jan 2008 09:43
por Pask
Sim, mas eu gostaria de esclarecer várias dúvidas que aqui no fórum ficariam difíceis de explicar. Por exemplo, no CCS o cabeçalho inicial de um código fica assim:

#include <16f628.h>
#use delay(clock=4000000)
#fuses INTRC_IO,NOWDT,BROWNOUT,PUT,MCLR
static int x;
static int16 y;
float conta;
#define a pin_a0
#define b pin_a1
#define c pin_a2

No caso do HI-TECH, como seriam as mesmas instruções por exemplo?

Outra pergunta: no CCS, eu posso criar facilmente um atraso de tempo usando as diretivas internas: delay_ms(x) ou delay_us(x). Essas diretivas não fazem parte da linguagem C e só existem nos compiladores da CCS.
No caso do Hi-Tech, como seria isto?

Estão vendo? As dúvidas são muitas e eu sei que vão aparecer mais. Eu necessitaria de um tutorial ou livro que eu pudesse estudar por completo.

MensagemEnviado: 28 Jan 2008 08:19
por ze
além do pdf muito bem explicativo, tem também a pasta "samples". use os ex. como referência. (o que tbém aliás são muito bons).
tem tbém seu precioso delay().

Tutorial em português mastigadinho feito especialmente para pask´s, eu nunca vi... rsrsrsrs

É válido: poste suas gradativas dúvidas.

abrç

MensagemEnviado: 28 Jan 2008 11:21
por Pask
Bem Lellis, infelizmente eu não sou um "gênio" como você que deve saber absolutamente tudo sobre linguagens de programação e compiladores, mas, caso vc não saiba, tem muita gente que gosta de estudar as coisas mais a fundo para aprender direito e não a toque de caixa como outros...
Agradeço pela boa vontade daqueles que realmente tiveram boa vontade em auxiliar-me em mais esta dificuldade.

Pask.

MensagemEnviado: 28 Jan 2008 11:34
por LeandroPIC
Vamos lá, primeiro vc deve linca ele com o mplab ai vc faz um novo projeto no "projet wizard", e escolhe o PIC que vc vai usar.

Ai vc coloca no inicio:

#include <pic.h>

O compilador altomaticamente sabe que PIC vc esta usando,pois vc defimiu ele no "projet wizard" do MPLAB.

Há de uma olhada na pasta que vc estalou o programa, vai ter uma pasta que se chama "Include", VC abre ela e ve como o hi-tech trata os bit e bytes da ram, diferente do CCS o Hi-tech não tem aqueles comandos malucos para configurar esses registradores vc deve configura-los diretamente.


Não vejo mais o que ter duvida pois o resto é C ANSI.

Mas se pintar duvida POST.

MensagemEnviado: 28 Jan 2008 11:49
por Pask
Valeu Leandro! É bom saber que ainda existe gente como vc no mundo. Se tiver mais alguma dúvida, postarei com certeza. Um forte abraço.

MensagemEnviado: 28 Jan 2008 12:27
por Pask
Não estou conseguindo compilar o seguinte código em HI-TECH:

// PISCA LED C //
// Programa que fará um led piscar a razão de 1 vez a cada 0,5 segundo indefinidamente.

#include <pic.h>
#include <htc.h>
#include <delay.h>
#define unprotect
#define pwrten
#define wdtdis
#define intclk
#define bordis

void main()
{
while (1)
{
output_high(RA0);
delayms(500);
output_low(RA0);
delayms(500);
}
}
-------------------------------------------------------------------------------------
Aparece a seguinte mensagem de erro:

can't open include file "delay.h": No such file or directory

Mas o arquivo de include "delay.h" está no diretório do HI-TECH. O que estaria errado então? Outra coisa, como eu configuro o clock do PIC?

MensagemEnviado: 28 Jan 2008 12:43
por ze
ah, magoei o minininho!!!! desculpa tá? sô 1/2 bruto mêmo. e prometo que [não] vou tirar suas dúvidas!!! E obrigado pelo "gênio"!!!! Mas, menos tá? (até hoje não sei como utilizar struct e union em c! pego tudo pronto!)

[Não] fico feliz em [não] ajudar!!
de novo: poste suas gradativas dúvidas...Vou tentar não responder!!!

um cafuné!!!

só pra completar:
"."

MensagemEnviado: 28 Jan 2008 12:48
por ze
ah, se não obtiver respostas em + de 72 horas, tentarei lhe ajudar.
P. ex., sua dúvida anterior é muito fácil...
espero que não dispense!!!

um aperto de mão

MensagemEnviado: 28 Jan 2008 22:25
por Maia
Código: Selecionar todos
#include <htc.h>

__CONFIG(UNPROTECT & WDTDIS & BORDIS & PWRTDIS & HS & MCLREN & LVPDIS);

void delay(void){
int i;
  for(i = 0, i < 5000; i++);
}


void main(void){
  while(1){
    RA0 = 0;
    delay();
    RA0 = 1;
    delay();
  }
}


Não testei, mas é por aí. Se quiser usar o DelayMs() tem que copiar os arquivos da pasta C:\Arquivos de Programas\HI-TECH Software\PICC\std\9.60\samples\delay pra pasta do seu projeto e colocar o #include "delay.h"
Abraços,
Maia

MensagemEnviado: 29 Jan 2008 08:58
por Pask
Fiz o que vc disse, mas a seguinte mensagem de erro aparece quando tento compilar:

Error [141] C:\Meus Documentos\ProjetoLed\LedC.c; 7.18 can't open include file "delay.h": No such file or directory
delay.obj is up-to-date

O código fonte ficou assim:

__CONFIG(UNPROTECT & WDTDIS & BORDIS & PWRTDIS & HS & MCLREN & LVPDIS);
#include <htc.h>
#include <delay.h>
picc -DXTAL_FREQ=4MHZ

void main()
{
while (1)
{
ra0=0;
delayms(500);
ra0=1;
delayms(500);
}
}

Como eu defino a freq. do cristal neste compilador?

MensagemEnviado: 29 Jan 2008 11:15
por ze
eu também quero tornar este mundo um lugar melhor pra se viver!!
(desculpe não resisti)

Experimente substituir
#include <delay.h> por #include "delay.h"
desde que seu delay.h esteja em C:\Meus Documentos\ProjetoLed
(ou coloque o delay.h na mesma pasta htc.h)
Todos no mesmo barco!! (sentido duplo)
VNOKÊDÁ!

MensagemEnviado: 29 Jan 2008 11:26
por LeandroPIC
vc deve fazer assim:

Abra a pasta onde vc estalou o Hi-tech, la tem outra pasta que se chama "samples", abra ela vai ter outra que se chama Delay, abra ela copie o delay.h e delay.c e cole na mesma pasta do seu projeto.

Há mais uma coisa, o certo é assim

DelayMs(XXX);

observe que o D eo M são maiusculos,e não se vc quiser mais do que 255 milisegundos vc deve fazer assim

DelayMs(250);
DelayMs(250);

Isso porque o maximo que as trabalham é até 255 milisegundos, se vc colocar assim:

DelayMs(500);

O delay vai só até 255 Milisegundos, o resto ele descarta

Uma dica Abra as pastas onde vc estalou o Hi-tech e de uma boa olhada , lá esta as respostas para tudo!

Mas se pintar mais duvidas POST!