Ir ao conteúdo

PIC linguagem C


du.facc

Posts recomendados

Postado

Boa tarde pessoal, ja conheço linguagem C para PC e conheço programação de uP em Assembly e gostaria agora de programar um PIC em C.

Peguei muitos exemplos e to conseguindo me virar, mas não to entendendo nada =\

Estou tentando no momento, ler um sensor analógico via ADC e jogar a leitura num display 7Segmentos. Notei que o código de leitura é read_adc. Configurei o ADC desta forma :

setup_adc_ports(ALL_ANALOG);

setup_adc(ADC_CLOCK_INTERNAL);

setup_adc_ports(AN0);

set_adc_channel(0);

conforme vi num tópico aqui mesmo...Entendi que a última linha está setando a porta AN0 para o adc certo?

não consigo agora jogar a saída para o port b....peguei este cálculo também do tópico :

medida1 = (medida * 150) / 1023;

entendi que tenho que pegar o sensor * topo de escala / ADC 10bits correto?

uma coisa que eu gostaria de aprender também é , se , output_b se refere aos pinos B0 ao B7, como escrevo para saída apenasdo B3 por exemplo?

Última dúvida por enquanto ( rs ), vi este tipo de código em mais de um exemplo :

char display[10]=

{0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7C, 0x07, 0x7F, 0x67};

Não encontro o outro, mas era parecido, só que outros números....joguei na calculadora e nenhum corresponde ao número que acredito ser de 0 à 9. Pensei que é hexa e transformaria em binário para cair no 7 segmentos, mas nao consegui fazer a conversão do jeito que pensei q era...alguem sabe o que é?

Obrogado por enquanto

Postado

Ja que voce conhece C para PC e Assmbly para PIC,voce deve ir de cabeça nos compiladores da Microchip que trabalham perfeitamente com os registradores diretamente.

Me parce que esta exeperimentando CCS,se for,este compilador não segue as regras 'normais' de programação e voce vai ficar perdido mesmo.

char display[10]=

{0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7C, 0x07, 0x7F, 0x67};

Não encontro o outro, mas era parecido, só que outros números....joguei na calculadora e nenhum corresponde ao número que acredito ser de 0 à 9. Pensei que é hexa e transformaria em binário para cair no 7 segmentos, mas nao consegui fazer a conversão do jeito que pensei q era...alguem sabe o que é?

char display[10],siginifica que voce terá 10 variéveis de 8 bytes(um CHAR comporta 1 byte),e os números são hexadecimais,que em binário vão representar segmentos no display de 7 segmentos e esta ordem vai depender de como o programador fez o hardware.

No seu caso que tem mais conhecimento nestas linguagens,quando for programar para PIC,pense em setar os registros e inicializções como se fosse em ASM,e pense nas rotinas como se fosse em C para PC,mas seguindo as regras em ASM e sabendo que está programando para um PIC.

Postado

vtrx, você está coberto de razão, estou no CSS mesmo, e agora saquei a pegada dos numerais.....o binário é da direita pra esquerda que é transferido pro 7SEG... tipo : G-F-E-D-C-B-A. rs, testei e bateu certinho...

Eu entendo o termo [10] mas não precisa necessariamente ser tipo char né? Eu vou aprender pic pra uC este semestre na facul e o prof ja adiantou que seria familia 18, por isso quero dar uma brincada com ele agora...

Como disse, ja consegui algumas coisinhas, aprendi a jogar a saída para o port inteiro, mas não para apenas 1 pino..

To tentando fazer o displayzinho mas não sei como jogar para a saída, e nem se tratei corretamente a informação que o ADC me forneceu...

main()       // função principal
{

setup_adc_ports(ALL_ANALOG);
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(AN0);
set_adc_channel(0);

if (input(A2))
{

medida = (int32)read_adc();
medida1 = (medida * 150) / 1023;

}

Travei neste momento....como trato o 'medida1' agora para o display ler? o A2 foi apenas pra entender a entrada, coloquei um switch para testes....to testando no proteus

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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!