ADC ARM - LPC2138

Software e Hardware para linha ARM

Moderadores: 51, guest2003, Renie, gpenga

ADC ARM - LPC2138

Mensagempor gibim » 29 Mar 2007 00:21

Amigos, me ajudem a entender o porque do não funcionamento da leitura do ADC no Pino 01 - AD1.6, canal 5 do LPC2138

//ADC
#define CH0 (1<<0)
#define CH1 (1<<1)
#define CH2 (1<<2)
#define CH3 (1<<3)
#define CH4 (1<<4)
#define CH5 (1<<5)
#define CH6 (1<<6)
#define CH7 (1<<7)

#define CH5_PINSEL (2<<5)

#define CLKDIV (29<<8) // CLKDIV = (60Mhz/2Mhz)-1
#define BURST (1<<16) // 1 Conversçao continua via hardware, 0 via software uma vez
#define ADC10_BITS (0<<17)
#define ADC08_BITS (2<<17)
#define POWERON_ADC (1<<21)
#define START_CONVERSION (1<<24)
#define EDGE_CONVERSION (1<<27)


void InitAdc(void)
{
AD0CR = CLKDIV | ADC10_BITS;
}

unsigned int LeituraADC(char channel)
{
unsigned int i;

//Porta p0.21, AD1.6, canal 5.
PINSEL1 |= CH5_PINSEL;

AD0CR |= (POWERON_ADC|CLKDIV|channel);

// Start A/D Conversion
AD0CR |= START_CONVERSION;

do
{
i = AD0DR; // Read A/D Data Register

}while ((i & 0x80000000) == 0); // Wait for end of A/D Conversion

return (unsigned int)((i >> 6) & 0x03FF); // bit 6:15 is 10 bit AD value
}


char CheckTensao(void)
{
unsigned int Vdc = 0;

Vdc = LeituraADC(CH5);

// Tensão Ok
return 0;
}

Ahh, a frequência de operação está em 60Mhz

Obrigado
Avatar do usuário
gibim
Byte
 
Mensagens: 117
Registrado em: 08 Nov 2006 21:40
Localização: Londrina - PR

Voltar para ARM

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x