Analogica
2 participantes
Página 1 de 1
Analogica
como configurar e usar mais de uma porta analogica ao mesmo tempo usando um comparador entre elas ?
Anderson- Mensagens : 2
Data de inscrição : 26/12/2009
Idade : 38
Re: Analogica
Olá Anderson,
É bem fácil configurar mais de uma porta analógica.
Usando o compilador C18, você deve na configuração do sistema usar a função OpenADC usando o ultimo parâmetro para configurar o número e quais portas analógicas você utilizará.
Estas são as opções:
Um exemplo de configuração de portas analógicas segue abaixo:
Espero ter ajudado.
Bruno S. Avealr
É bem fácil configurar mais de uma porta analógica.
Usando o compilador C18, você deve na configuração do sistema usar a função OpenADC usando o ultimo parâmetro para configurar o número e quais portas analógicas você utilizará.
Estas são as opções:
- Código:
ADC_0ANA All digital
ADC_1ANA analog:AN0 digital:AN1-AN15
ADC_2ANA analog:AN0-AN1 digital:AN2-AN15
ADC_3ANA analog:AN0-AN2 digital:AN3-AN15
ADC_4ANA analog:AN0-AN3 digital:AN4-AN15
ADC_5ANA analog:AN0-AN4 digital:AN5-AN15
ADC_6ANA analog:AN0-AN5 digital:AN6-AN15
ADC_7ANA analog:AN0-AN6 digital:AN7-AN15
ADC_8ANA analog:AN0-AN7 digital:AN8-AN15
ADC_9ANA analog:AN0-AN8 digital:AN9-AN15
ADC_10ANA analog:AN0-AN9 digital:AN10-AN15
ADC_11ANA analog:AN0-AN10 digital:AN11-AN15
ADC_12ANA analog:AN0-AN11 digital:AN12-AN15
ADC_13ANA analog:AN0-AN12 digital:AN13-AN15
ADC_14ANA analog:AN0-AN13 digital:AN14-AN15
ADC_15ANA All analog
Um exemplo de configuração de portas analógicas segue abaixo:
- Código:
ADCON1 |= 0x0F; // Default all pins to digital
// Configura o conversor AD
OpenADC(ADC_FOSC_64 & // ADC_FOSC_64: Clock de conversão do A/D igual a
// FAD = FOSC/64 = 48MHz/64 = 750kHz
// Desta Forma, TAD=1/FAD = 1,33us.
ADC_RIGHT_JUST & // ADC_RIGHT_JUST: Resultado da conversão ocupará os
// bits menos significativos dos regis-
// tradores ADRESH e ADRESL.
ADC_12_TAD, // ADC_2_TAD: Determina o tempo de conversão de uma
// palavra de 10-bits. Neste caso será
// igual a 12*TAD = 12*1,33us = 16us.
ADC_CH0 & // ADC_CH0: Atua sobre os bits CHS3:CHS0 do ADCON0
// para selecionar o canal no qual será
// realizada a conversão. Neste caso o AN0.
ADC_INT_OFF & // ADC_INT_OFF: Habilita a interrupção de términio de
// conversão.
ADC_VREFPLUS_VDD & // ADC_VREFPLUS_VDD: Determina o VDD (+5V)como tensão de refe-
// rência positiva (VREF+) do CAD.
ADC_VREFMINUS_VSS, // ADC_VREFMINUS_VSS: Determina o VSS (0V)como tensão de
// referência negativa (VREF-) do CAD.
ADC_5ANA); // BITs PCFG3:PCFG0: Configura os pinos AN4 AN5 AN3(RA3), AN2(RA2), AN1(RA1) // e AN0(RA0) como Entradas Analógicas
- Código:
char temp[5];
int buffer;
char send[3];
//--------------------Termometro-------------------//
unsigned char Num_CAD_g = 0; // Variável que guarda o valor da
// conversão A/D em GRAUS CELSIUS.
unsigned float Num_CAD_d = 0.0; // Variável que guarda o valor da
// conversão A/D em DECIMAL.
unsigned int Num_CAD_b = 0; // Variável que guarda o valor da
// conversão A/D em BINÁRIO.
unsigned float resolucao = VDD/1023.0; // resolução do CAD de 10bits (2^10-1).
SetChanADC(ADC_CH0);
if(!BusyADC()) // Testa se o processo de conversão está completo.
{
Num_CAD_b=ReadADC(); // Lê o valor convertido e armazena na variável.
ConvertADC(); // Inicia a Conversão.
}
Espero ter ajudado.
Bruno S. Avealr
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos