Ir ao conteúdo

ConfiguraÇÃo pic canal adc


fireands

Posts recomendados

Postado

Olá pessoal estou fazendo um programa em c para um microcontrolador pic16f877a e, ao ver alguns exemplos na internet me bateu uma duvida qual a diferença entre usar o termo: READ_ADC(7), READ_ADC(6) ou READ_ADC(1) sei que há uma funçao relativa a cada número, mas não entendi qual, por isso se alguém puder me ajudar desde já agradeço.Abraço

Postado

Bom, você não informou qual compilador usa. Chutei que seria o CCS e acabei acertando.

Veja por exemplo esse trecho do 18F4550.H:

// Constants used in READ_ADC() are:
#define ADC_START_AND_READ 7 // This is the default if nothing is specified
#define ADC_START_ONLY 1
#define ADC_READ_ONLY 6

Apertei F1 e encontrei no HELP. Nunca usei essas constantes.


read_adc( )

Syntax:


value = read_adc ([mode])



Parameters:


mode is an optional parameter. If used the values may be:

ADC_START_AND_READ (continually takes readings, this is the default)

ADC_START_ONLY (starts the conversion and returns)

ADC_READ_ONLY (reads last conversion result)



Returns:


Either a 8 or 16 bit int depending on #DEVICE ADC= directive.



Function:


This function will read the digital value from the analog to digital converter. Calls to setup_adc(), setup_adc_ports() and set_adc_channel() should be made sometime before this function is called. The range of the return value depends on number of bits in the chips A/D converter and the setting in the #DEVICE ADC= directive as follows:

function.png~original

Availability:
This function is only available on devices with A/D hardware.



Requires:
Pin constants are defined in the devices .h file.



Examples:
setup_adc( ADC_CLOCK_INTERNAL );

setup_adc_ports( ALL_ANALOG );

set_adc_channel(1);

while ( input(PIN_B0) ) {

delay_ms( 5000 );

value = read_adc();

printf("A/D value = %2x\n\r", value);

}



read_adc(ADC_START_ONLY);

sleep();

value=read_adc(ADC_READ_ONLY);



Example Files:
ex_admm.c, ex_14kad.c



Also See:
setup_adc(), set_adc_channel(), setup_adc_ports(), #DEVICE, ADC Overview

Espero que ajude.

Falou

Postado

amigão, o que muda é qual canal do pic ele vai ler

EXEMPLO

o pino do pic RA0 esta associando ao canal analógico AN0, o pino RA1 esta associado ao canal analógico AN1, e faz de conta que você tem dois termômetros um no canal 0 e um no canal 1, para você ler o termômetro que esta no canal 0 você usa o

read_adc(0);

ja para ler o termômetro do canal 1 você usa

read_adc(1);

ou seja estes numeros estão associados ao canal analógico do pic que você vai ler

e grande matheusLPS não tenho certeza mas acho que é o microC hein rsrsrsrsrs

tire nossa duvida amigo qual é??

flowwww

Postado

perfeita sua resposta!!!! olhei com mais calma tudo aqui e você tem toda a razão

a leitura é

adc_read(0);
e não
read_adc(0);

me desculpem a confusão rsrsrsrsrsrsrsrsrs :D , e especialmente me desculpe matheusLPS

flowwwwww

Postado

Bom pessoal muito obrigado mesmo pelas respostas,a propósito o compilador é o CCS (desculpe não ter mencionado);MatheusLPS traduzindo a sua resposta eu cheguei as definições:

7 - ADC_START_AND_READ (leva continuamente leituras, este é o padrão)

1 - ADC_START_ONLY (começa a conversão e retorno)

6 - ADC_READ_ONLY (lê último resultado da conversão)

Entendi que para cada numero que eu coloco eu terei um tipo de retorno porém não entendi essa "conversão".Algum de vocês saberia me explicar de forma mais fácil essa diferença.desde já agradeço.

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!