Il risultato è che a video mi compare la temperatura misurata dal sensore, e fin qui tutto ok.
I problemi iniziano quando abilito il timer 2, che mi esegue un conteggio ad interrupt ogni mS.
La lettura della temperatura funziona ancora, ma ogni tanto il valore letto è -127.94.
Analizzando il problema ho capito che il codice che gestisce la comunicazione tra il PIC e il sensore di temperatura deve rispettare tempi precisi, per non avere problemi; e l'utilizzo del timer 2 mi varia questi tempi.
Volevo chierdervi quale è la strada più gusta per risolvere questo problema, se per esempio devo disabilitare tutti gli interrup prima di eseguire la lettura della temperatura e poi riabilitarli a lettura eseguita.
Questo è il codice che eseguo dentro il timer 2:
- Codice: Seleziona tutto
if(PIR1bits.TMR2IF==1) //ciclico ogni 1 mS
{
if(GSM_NET==1 && gsm_ready==1)
{
conteggio_campo++;
una_volta=0;
}
if(GSM_NET==0 && una_volta==0 && gsm_ready==1)
{
if(conteggio_campo>1000)
presenza_linea=1;
else
presenza_linea=0;
una_volta=1;
conteggio_campo=0;
}
if(flag_ring==1) //se leggo il fronte di discesa del segnale RING incremento la viabile ogni ms
verifica_sms++;
if(flag_ring>=2) //sul fronte di salita verifico la durata del segnale per discriminare l'sms dalla chiamata (misurato 128ms 122ms)
{
if(verifica_sms>=110 && verifica_sms <=130)
sms_arrivato=1;
else
chiamata=1;
flag_ring=0;
verifica_sms=0;
INTCON2bits.INTEDG0 = 0; //Interrupt on rise edge
}
if(veicolo_in_marcia==1 && segnale_gps_agganciato==1)
lampeggio_veloce++;
if(lampeggio_veloce>=50)
{
lampeggio_veloce=0;
LED_GIALLO=LED_GIALLO^1;
}
if(allarme_inserito==1)
{
lampeggio_furto++;
if(lampeggio_furto>=600 && allarme_furto==0)
{
lampeggio_furto=0;
LED_BLU=LED_BLU^1;
}
}
PIR1bits.TMR2IF=0; //reset flag interrupt timer2
Grazie per l'auito.
Marcello.

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)

