Estoy conectando MCU PIC32 con 24 entradas y UART. Cuando llega alguna entrada, estos datos se transfieren a la PC a través de uart. Estoy usando múltiples si la condición como
if(input1==high)
{
putsUART("input 1 ON\n");
}
if(input2==high)
{
putsUART("input 2 ON\n");
}
Lo que hace esta condición si se está produciendo es cada vez que se recibe una entrada, sigue imprimiendo los datos como
input 1 ON
input 1 ON
input 1 ON
y continúa. Quiero que se muestre una sola vez. Por ejemplo, si apliqué input1, input 1 ON
debería imprimirse una vez y si quita la entrada input 1 OFF
debería mostrarse una vez.
No sé cómo puedo ejecutar esto si la condición solo una vez. Por favor ayuda. Gracias.!
CÓDIGO (solo para 3 entradas):
int main()
{
TRISAbits.TRISA6 = 1;
TRISAbits.TRISA7 = 1;
TRISGbits.TRISG13 = 1;
while(1)
{
if(PORTAbits.RA6 == 0) //INPUT 1
{
putsUART2("Input: 1 ON\n");
Delayms(1000);
}
if(PORTAbits.RA7 == 0) //INPUT 2
{
putsUART2("Input: 2 ON\n");
Delayms(1000);
}
if(PORTAbits.RG13 == 0) //INPUT 3
{
putsUART2("Input: 3 ON\n");
Delayms(1000);
}
}
}