Interrupt su RB0
Salve a tutti.
Stavo cercando scrivere due righe di codice per calcolare la frequenza generata da un sensore di flusso a effetto hall, tramite l'interrupt sulla porta RB0.
Il problema è che quando lo eseguo non succede nulla, non viene sollevato alcun interrupt. Qualcuno mi può aiutare?
Questo è il mio codice grazie mille. (Ho preso spunto da quelli gia presenti su internet)
Stavo cercando scrivere due righe di codice per calcolare la frequenza generata da un sensore di flusso a effetto hall, tramite l'interrupt sulla porta RB0.
Il problema è che quando lo eseguo non succede nulla, non viene sollevato alcun interrupt. Qualcuno mi può aiutare?
Questo è il mio codice grazie mille. (Ho preso spunto da quelli gia presenti su internet)
- Codice: Seleziona tutto
void interrupt ISR(void);
int flowCounter=0;
int controllo=0;
int main ()
{
//settaggio impostazioni
TRISA=0b00000001;
TRISB=0b00000000;
PORTA=0;
PORTB=0;
INTCON=0b10000000;//attivo l'interrupt sulla porta rb0
OPTION_REG=0b01000000;//interrupt rising signal
LCD_INIT();
CMCON=7;//si disattiva il comparatore delle porte analogiche
while(1)
{
if(RA0)
{
__delay_ms(100);
if(RA0)
{
INTE=1;
__delay_ms(1000);
INTE=0;
if(flowCounter>0)RA7=1;
//LCD_PUTSN(flowCounter);
flowCounter=0;
}
}
}
}
void interrupt ISR(void)
{
if(INTF)
{
flowCounter++;
if(controllo==0)
{
RB6=1;
controllo=1;
LCD_CLEAR();
LCD_PUTS("INTERUPT");
}
}
}