Ir ao conteúdo
  • Cadastre-se

Hi-Tech + PIC16F628A


Laranja Verde

Posts recomendados

Olá pessoal,

Baixei o hi-tech versão 9.83 para eu fazer uns testes com linguagem C que não manjo nada.

Primeiro teste é o famoso pisca led.

Achei um código fonte para o PIC16F690 aqui no fórum e por ser bastante simples fiz algumas alterações para o PIC16F628A e compilou sem erros.

O fonte eu peguei neste link:

http://forum.clubedohardware.com.br/mplab-hi-tech/925999?t=925999&highlight=tech

Este é o código fonte original postado pelo edu.:

#include <htc.h>

__CONFIG( WDTDIS & PWRTEN & MCLRDIS & INTIO );

#define _XTAL_FREQ 4000000

void main(void)

{

ANSEL=0;

ANSELH=0;

TRISA=0;

TRISB=0;

TRISC=0;

while(1)

{

RC0=1;

__delay_ms(150);

__delay_ms(150);

__delay_ms(150);

RC0=0;

__delay_ms(150);

__delay_ms(150);

__delay_ms(150);

}

}

Este outro é o codigo que alterei para o PIC16F628A

#include <htc.h>

__CONFIG( WDTE_OFF & PWRTE_ON & MCLRE_OFF & FOSC_INTOSCIO );

#define _XTAL_FREQ 4000000

void main(void)

{

TRISA=0;

TRISB=0;

while(1)

{

RB0=1;

__delay_ms(150);

__delay_ms(150);

__delay_ms(150);

RB0=0;

__delay_ms(150);

__delay_ms(150);

__delay_ms(150);

}

}

Minha dúvida agora é se posso gravar no PIC e testar, porque acho estranho não desabilitar os comparadores e configurar os pinos do PIC como I/O igual em assembly.

Bom, em C eu não sei fazer nada disso e não achei nada na net que me ajudasse.

Obrigado,

Renato

Link para o comentário
Compartilhar em outros sites

Obrigado por responderem,

Gravei no PIC o programa modificado que postei acima e funcionou sem problema.

Depois eu compilei e gravei no PIC o programa abaixo que pisca 2 leds que também funcionou:

#include <htc.h>

__CONFIG( WDTE_OFF & PWRTE_ON & MCLRE_OFF & FOSC_INTOSCIO );

#define _XTAL_FREQ 4000000

void init(void)

{

// port directions: 1=input, 0=output

TRISB = 0b00000000;

}

void main(void)

{

RB2 = 0;

RB3= 0;

init();

while (1)

{

RB2 = 1;

for (int i =10;i>0;i--){_delay(50000);}

RB2 = 0;

RB3 = 1;

for (int i =10;i>0;i--){_delay(50000);}

RB3 = 0;

}

}

Resumindo, na linguagem C não precisa de nenhuma configuração extra para o PIC funcionar.

Acho a linguagem C um troço muito enrolado, não se acha um livro específico para o compilador que a gente escolhe para testar.

Acho que o único livro que existe é para o compilador CCS que muita gente não gosta.

Renato

Link para o comentário
Compartilhar em outros sites

Cara, o C permite mais coisas que o ASM torna muito complexas. Algumas coisas que eu mais aprecio são: Não precisa te preocupar com banco de memória, Podes mover o valor diretamente para o registrador e Tens os delays a tua disposição. Os compiladores ANSI da mcirochip te dão completo acesso a todos os registradores do MCU, ou seja, você faz tudo como se fosse assembly (em parte). Configura as IO, analogs, comparadores. Com o tempo, você começa a usar os exemplos prontos para as coisas mais complexas e dai fica tudo mais simples.

Link para o comentário
Compartilhar em outros sites

Olá edu.,

Obrigado pelo código fonte que você postou e eu usei para testar o HT.

Com relação ao seu comentário eu gostaria de saber como aprender sem nenhuma orientação.

Pela internet é complicado porque está tudo muito espalhado.

Tutorial/livros igual os que tem para o assembly não se acha, você ou alguem do fórum tem alguma sugestão?

De vez em quando alguem que já conhece profundamente o assunto escreve:

- leia o manual do HT que tem tudo lá.

- leia na pasta include que está tudo bem explicado.

E eu pergunto, o cara que é iniciante em C vai entender o que?

Vai perder tempo pra caramba e aprender mais ou menos.

Abs,

Renato

Link para o comentário
Compartilhar em outros sites

Resumindo, na linguagem C não precisa de nenhuma configuração extra para o PIC funcionar.

Isso depende do compilador e não da linguagem,por exemplo,usando PIcs 18F,24F e a linha DSPIC,voce tem que configurar todas as opções,apenas atente para as limitaçãoes da linguagem C (que foi adaptada para se utilizar um microcontrolador).

Tutorial/livros igual os que tem para o assembly não se acha, você ou alguem do fórum tem alguma sugestão?

Esse é o ponto,os compiladores C não são padronizados pois são uma adaptação da linguagem C usada em sistemas operacionais,além do mais,o importante num circuito microcontrolado é a parte eletronica e não a liguagem(além da de máquina).

Link para o comentário
Compartilhar em outros sites

@vtrx

Depende muito cara. Essa farra dos compiladores são de empresas que inventam trinta mil funções para tudo. Utilize os MPLAB C ou HITECH que vais ter o C padrão, bem semelhante ao do computador, onde os registradores são mapeados e as funções transparentes. Padronizados pela norma ANSI (acho que se escreve assim). Por isso abandonieo CCS a mais de ano e só uso HI-TECH. Qualquer coisa fora busco no site da microchip que eles tem exemplos para tudo, com manuais e explicações.

Para estudar mais sobre C procure as funções, definições de dados e funções. Estou sem tempo mas vou upar um guide que recebi de meu professor ano re-trasado. Abraço.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para 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...