Así que tengo un PIC16F1827 en una placa de pruebas y estaba tratando de obtener una demostración simple trabajando donde toco un cable para encender un LED usando el Módulo de detección capacitiva. Principalmente salí de este ejemplo que encontré , cruzado Haciendo referencia a la sección 27 de la hoja de datos para hacer cualquier corrección. Sin embargo, a pesar de mis mejores esfuerzos, no hará nada. De lo que puedo reunir, el Timer1 no se incrementa en absoluto, solo se sienta a 0. ¿Puede alguien ayudarme a averiguar lo que he arruinado aquí?
int count = 0;
int thresh = 0;
void main(void)
{
// initialize the device
SYSTEM_Initialize();
SWDTEN = 0;
TRISA1 = 0;
RA1 = 0;
// Set B5 as analog input
TRISB5 = 1;
ANSB5 = 1;
// Set CPS module as Timer1 clock source
T1CON = 0b11000100;
T1GCON = 0;
// Set CPS range to high and channel to 8(B5)
CPSCON0 = 0b10001100;
CPSCON1 = 0b1000;
TMR1ON = 1;
TMR1 = 0;
__delay_ms(16);
TMR1ON = 0;
thresh = TMR1 * 8 / 10;;
TMR1 = 0;
TMR1ON = 1;
//SWDTEN = 1;
//SLEEP();
__delay_ms(16);
while (1)
{
TMR1ON = 0;
count = TMR1;
RA1 = count < thresh;
TMR1 = 0;
TMR1ON = 1;
//SWDTEN = 1;
//SLEEP();
__delay_ms(16);
}
}