Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
Laranja Verde

Hi-Tech + PIC16F628A

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites
Bom, em C eu não sei fazer nada disso e não achei nada na net que me ajudasse.

Se não me engano,no High tech,da para voce setar tipo em ASM.

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • 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

    Compartilhar este post


    Link para o post
    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.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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

    Compartilhar este post


    Link para o post
    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).

    Editado por vtrx

    Compartilhar este post


    Link para o post
    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.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×