Compilador HI-TECH

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Compilador HI-TECH

Mensagempor Pask » 26 Jan 2008 16:23

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.
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor Maia » 26 Jan 2008 18:43

Dá uma olhada em http://www.microchipc.com/
Qualquer dúvida posta aí que a gente tenta responder.
Abraços,
Maia
Avatar do usuário
Maia
Byte
 
Mensagens: 348
Registrado em: 15 Out 2006 16:25
Localização: Rio de Janeiro

Mensagempor LeandroPIC » 26 Jan 2008 19:29

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!
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Mensagempor Pask » 27 Jan 2008 09:43

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.
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor ze » 28 Jan 2008 08:19

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ç
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor Pask » 28 Jan 2008 11:21

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.
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor LeandroPIC » 28 Jan 2008 11:34

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.
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Mensagempor Pask » 28 Jan 2008 11:49

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.
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor Pask » 28 Jan 2008 12:27

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?
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor ze » 28 Jan 2008 12:43

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:
"."
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor ze » 28 Jan 2008 12:48

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
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor Maia » 28 Jan 2008 22:25

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
Avatar do usuário
Maia
Byte
 
Mensagens: 348
Registrado em: 15 Out 2006 16:25
Localização: Rio de Janeiro

Mensagempor Pask » 29 Jan 2008 08:58

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?
Pask
Word
 
Mensagens: 600
Registrado em: 22 Dez 2006 19:19

Mensagempor ze » 29 Jan 2008 11:15

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Á!
Avatar do usuário
ze
Dword
 
Mensagens: 1655
Registrado em: 05 Jun 2007 14:32

Mensagempor LeandroPIC » 29 Jan 2008 11:26

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!
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Próximo

Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x