Boa noite!
Ainda estou estudando este documento, entretanto consegui obter algo já usual como abaixo:
unsigned long int TESTE ()
{
unsigned long int VALOR = 0;
ADRESH = 0X00; // Zera registros
ADRESL = 0X00; // Zera registros
ADCON1 = 0b10001110; // Justificar a direita & Fosc/64 & AN0 com referencias internas
PORTA=0X00; // Zera valor do capacitor interno do AD (CHOLD)
TRISA=0X00; // Porta A como saída
__delay_ms(10); // Tempo para garantir 0v no CHOLD
PORTA=0XFF; // Carrega o CHOLD com Vdd
ADCON0bits.CHS = 0b000; //Liga canal AN0
ADCON0bits.ADCS = 0b10; // Fosc/64
ADCON0bits.ADON = 1; // Liga ADC
TRISA=0XFF; // Porta A como entrada
__delay_us(30); // Tempo para realizar a leitura
ADCON0bits.GO_DONE =1; // Inicia a conversão
while(GO_DONE); // Aguarda finalizar a conversão
VALOR = ADRESH;
VALOR <<= 8;
VALOR = VALOR | ADRESL;
ADCON0bits.ADON = 0; // Desligar ADC
return VALOR ;
}
Agora sem toque 850 e 830, conforme vou aproximando o dedo este valor vai diminuindo gradativamente até o valor de 650. Já pode-se utilizar para detectar entretanto ainda que realizar conforme material da Microchip.
Aguardo ajudas, muito obrigado!