Pagina 1 di 2
Registro IOCA (PIC16F677)

Inviato:
29 ott 2013, 14:31
da mros
Buongiorno
Devo utilizzare l'interrupt RA2/INT sul PIC in oggetto.
Volevo chiedervi se devo configurare anche il registro IOCA poiché sul datasheet non ne parla ( o meglio parla solo per l'interrupt on-change.
grazie
Re: Registro IOCA (PIC16F677)

Inviato:
29 ott 2013, 15:02
da c1b8
No, non serve impostare il registro IOCA.
Se guardi il datasheet a pag. 65 dove viene rappresentato lo schema a blocchi del pin RA2, puoi notare che il segnale "interrupt on change" dipende dal valore del flip-flop che salva il valore di IOCA (WR IOCA), mentre il segnale "to INT" non dipende dal valore di IOCA.
Re: Registro IOCA (PIC16F677)

Inviato:
29 ott 2013, 16:02
da mros
Ciao Fabio
di fatti non avevo impostato quel registro (più per caso che volontario) ma purtroppo anche se porto alto il PIN A2 non succede nulla (l'interrupt non viene generato), puoi dare un occhio alla configurazione dei due registri:
MOVLW B'11000000'
MOVWF OPTION_REG
........
MOVLW B'10010000'
MOVWF INTCON
mha..
Re: Registro IOCA (PIC16F677)

Inviato:
29 ott 2013, 16:07
da c1b8
Questi due registri mi sembrano correttamente configurati.
Ed il registro ANSEL come lo hai impostato? devi configurare RA2 come digitale
Re: Registro IOCA (PIC16F677)

Inviato:
29 ott 2013, 16:13
da mros
Purtroppo si !
CLRF ANSEL
CLRF ANSELH
Re: Registro IOCA (PIC16F677)

Inviato:
29 ott 2013, 16:32
da c1b8
Bella storia. Immagino che anche il resto sia corretto, ricapitolando:
- RA2 configurata come input
- RA2 configurata come digitale
- Comparatori disabilitati (registri CM1CON0 e CM2CON0), dovrebbero esserlo per default.
- Configurare OPTION_REG e INTCON come hai fatto
- Il pin RA2 deve passare da basso ad alto per generare l'interrupt
- Nella routine di interrupt porre a '0' il bit INTF di INTCON per avere più interrupt
Non mi viene in mente altro come configurazione.
Se vuoi provare a postare il codice...
Re: Registro IOCA (PIC16F677)

Inviato:
29 ott 2013, 16:51
da mros
beh....guardando il tuo messaggio mi viene in mente una cosa.....
non ho messo la resistenza di push-down sulla porta A2, quindi potrebbe non rilevare mai il passaggio da zero a uno....
che ne dici?
Re: Registro IOCA (PIC16F677)

Inviato:
29 ott 2013, 17:07
da c1b8
Potrebbe, anche se mi sembra un po' forzata.
Se non ti è possibile inserire una resistenza per prova potresti abilitare le pull-up e testare l'interrupt sul passaggio da alto a basso.
Re: Registro IOCA (PIC16F677)

Inviato:
29 ott 2013, 17:31
da mros
è una prova che farò appena torno a casa.
come posso postare il codice?
Re: Registro IOCA (PIC16F677)

Inviato:
29 ott 2013, 17:34
da c1b8
Copialo dentro il tag [code], trovi il pulsante sopra alla box di input del messaggio di risposta.