Monitorare lo stato logico di un pin
ciao a tutti,
in questi giorni sto litigando con la programmazzione del mio PIC.
In pratica devo monitorare lo stato di un ingresso che rimane ad ON per per 3000mS e
ad OFF per 64mS nella fase di rete trovata, mentre nella fase di assenza rete lo stato logico basso
dura 64mS mentre quello altoo 800mS.
Devo riuscire a distingure le due condizioni.
Pultroppo per errore nella costruzione del PCB non ho utilizzato un pin ad interrupt ma un semplice I/O.
Questo è il codice che ho provato ma c'è qulacosa che mi sfugge perche il led si accende per qualche
millisecondo e poi si spegne anche in presenza di rete.
Grazie.
Marcello.
in questi giorni sto litigando con la programmazzione del mio PIC.
In pratica devo monitorare lo stato di un ingresso che rimane ad ON per per 3000mS e
ad OFF per 64mS nella fase di rete trovata, mentre nella fase di assenza rete lo stato logico basso
dura 64mS mentre quello altoo 800mS.
Devo riuscire a distingure le due condizioni.
Pultroppo per errore nella costruzione del PCB non ho utilizzato un pin ad interrupt ma un semplice I/O.
Questo è il codice che ho provato ma c'è qulacosa che mi sfugge perche il led si accende per qualche
millisecondo e poi si spegne anche in presenza di rete.
- Codice: Seleziona tutto
if (PIR1bits.TMR2IF==1 ) //ciclico ogni 1 mS
{
if(GSM_NET==1){
conteggio_campo++;
una_volta=0;
}
if(GSM_NET==0 && una_volta==0){
if( conteggio_campo>1000){
LED_BLU=1;
presenza_linea=1;
}
else {
LED_BLU=0;
presenza_linea=0;
}
una_volta=1;
conteggio_campo=0;
}
PIR1bits.TMR2IF=0; //reset flag interrupt timer2
}
Grazie.
Marcello.