ADC

Pessoal... por questões de hardware, preciso utilizar o AN8 do 18F2525.
Liguei um POT de 10K na alimentação e o cursor no pino 23. Teoricamente deveria funcionar mas está aquecendo o regulador quando aproximo o cursor da extremidade onde está ligado o VCC e a leitura fica bastante instável. Se desligo o cursor do pino 23 a tensão no cursor (quando posicionado à 50% do curso) fica em 2,5V, certinho. Se volto a ligar o pino do micro, cai pra próximo à zero. Isso me leva a crer que o pino está como saída e está "derrubando" a tensão.
Vejam o código no CCS:
Set_Tris_A(0b00000000);
Set_Tris_B(0b11100100); -> RB2 (AN8) em Input
Set_Tris_C(0b00010000);
PORT_B_PULLUPS(FALSE);
GIE = 0;
while (True)
{
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(0x06); -> AN0_TO_AN8
set_adc_channel( 8 );
vADC=read_adc();
...exibir valor da variável vADC no LCD ... (esta função está correta pois testei previsamente com valores fixos)
delay_ms(500);
}
Idéias?
Grato
Liguei um POT de 10K na alimentação e o cursor no pino 23. Teoricamente deveria funcionar mas está aquecendo o regulador quando aproximo o cursor da extremidade onde está ligado o VCC e a leitura fica bastante instável. Se desligo o cursor do pino 23 a tensão no cursor (quando posicionado à 50% do curso) fica em 2,5V, certinho. Se volto a ligar o pino do micro, cai pra próximo à zero. Isso me leva a crer que o pino está como saída e está "derrubando" a tensão.
Vejam o código no CCS:
Set_Tris_A(0b00000000);
Set_Tris_B(0b11100100); -> RB2 (AN8) em Input
Set_Tris_C(0b00010000);
PORT_B_PULLUPS(FALSE);
GIE = 0;
while (True)
{
setup_adc(ADC_CLOCK_INTERNAL);
setup_adc_ports(0x06); -> AN0_TO_AN8
set_adc_channel( 8 );
vADC=read_adc();
...exibir valor da variável vADC no LCD ... (esta função está correta pois testei previsamente com valores fixos)
delay_ms(500);
}
Idéias?
Grato