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
Registro IOCA (PIC16F677)
Moderatore:
Paolino
14 messaggi
• Pagina 1 di 2 • 1, 2
0
voti
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.
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.
Fabio
0
voti
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..
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..
0
voti
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...
- 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...
Fabio
0
voti
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?
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?
0
voti
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.
Se non ti è possibile inserire una resistenza per prova potresti abilitare le pull-up e testare l'interrupt sul passaggio da alto a basso.
Fabio
14 messaggi
• Pagina 1 di 2 • 1, 2
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 6 ospiti

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)


