Estoy usando la imagen 18f45k50 para el botón táctil capacitivo usando un CVD deferencial. Mi botón capacitivo funciona. Sin embargo, no puedo obtener la forma de onda de cfer deferencial estándar sugerida por el microchip.
Alguien ha trabajado en CVD deferencial y podría guiarme o indicarme la dirección correcta
actualmente es así como se ve mi forma de onda en un alcance que es muy diferente a la forma de onda estándar sugerida por el microchip
Edit2:NuevaformadeondayelcódigoparaelcanalADC
Y aquí está el código
unsigned long int result;
ADCON0bits.CHS = 14;// Set channel to the previous sensor
CVD_CHARGE_TRIS=0; Nop();CVD_CHARGE_LAT=1;
channel1=0;trischannel1=0;
// Start Pre-charge
Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();
Nop();Nop();Nop();Nop();Nop();Nop();Nop();
trischannel1=1;//Disconnect current sensor from GND (HI-Z)
GUARD_LAT=1;
//Acquisition
ADCON0bits.CHS=adcchanselect[0];
Nop();Nop();
ADCON0bits.GO_NOT_DONE = 1; // Start conversion
Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();
Nop();Nop();Nop();Nop();Nop();Nop();Nop();
while (ADCON0bits.GO_NOT_DONE){}
Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();
Nop();Nop();Nop();Nop();Nop();Nop();Nop();
//trischannel1=0;//Ground sensors
//CVD_CHARGE_LAT=0;
result=ADC_GetConversionResult();
//Scan B
ADCON0bits.CHS = 14;// Set channel to the previous sensor
CVD_CHARGE_TRIS = 0;Nop();CVD_CHARGE_LAT = 0;//Set previous sensor to Gnd (discharge internal)
channel1=1;trischannel1=0;//Set current sensor to GND (charge external)
// Start Pre-charge
Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();
Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();
Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();
Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();
trischannel1=1;//Disconnect current sensor from GND (HI-Z)
GUARD_LAT=0;
//Acquisition
ADCON0bits.CHS=adcchanselect[0];
Nop();Nop();
ADCON0bits.GO_NOT_DONE = 1; // Start conversion
Nop();Nop();Nop();Nop();Nop();Nop();Nop();Nop();
Nop();Nop();Nop();Nop();Nop();Nop();Nop();
while (ADCON0bits.GO_NOT_DONE){}
channel1=0; // Ground sensors
trischannel1=0;
result+=(1024-ADC_GetConversionResult());
return result;