PIC16F84. far visualizzare mess. e interrompere operazioni
Moderatore:
Paolino
18 messaggi
• Pagina 1 di 2 • 1, 2
0
voti
Salve Ragazzi, stavo programmando un PIC 16F84A con un programma timer...quando mi è sorta una domanda, posso far in modo che se su un piedino non riceve tensione il PIC fa visualizzare sul display un messaggio e di conseguenza interrompere tutte le operazioni? ovviamente se riceve tensione riprende il normale funzionamento eseguendo tutte le funzioni per cui è predisposto... è possibile?...potete darmi istruzioni? è la prima volta che lavoro con i PIC. Saluti...
0
voti
Se per non ricevere tensione intendi uno 0 logico
, puoi usare l'interrupt on change del PORTB. Tieni conto che la IOC avviene sia per la transizione
come
.
, puoi usare l'interrupt on change del PORTB. Tieni conto che la IOC avviene sia per la transizione
come
.0
voti
Salve Gohan, grazie per la risposta...come sempre velocissimo, ti chiedo una cosa....ma l'interrupt on change è disponibile su tutte le porte B? attualmente ho completamente libera solo la RB0, che mi sembra tra l'altro la più indicata per l'interrupt, è possibile utilizzarla per questo scopo? come fare a far visualizzare il messaggio durante l'interruzione e al momento in cui non riceve più tensione far ripartire i processi? altra cosa...non voglio farvi uscire pazzi, in giro c'è qualche simulatore dove sia facile compilare il firmware del PIC e magari simularne il comportamento???
1
voti
Per fare quello che tu dici ci sono diverse possibilità. Una è quella di usare un ingresso di interrupt ma si può fare anche senza. Immagino che il tuo programma sia fatto bene (secondo i canoni) e quindi l' esecuzione si svolga nel classico loop infinito di funzionamento. In questo caso basta testare ciclicamente l' ingresso che rileva la presenza di tensione.
Tieni presente che il micro deve accorgersi della mancanza di tensione prima che questa venga tolta a lui altrimenti il micro si spege e buonanotte ai suonatori. Per fare questo devi usare opportuni accorgimenti. Ad esempio se il micro è alimentato tramite un regolatore di tensione puoi rilevare la presenza di tensione a monte del regolatore usando un circuito del genere
Il diodo D1 fa in modo che quando l' alimentazione va via il condensatore Cin resti carico per il tempo sufficiente a far svolgere al micro le operazioni di chiusura mentre il segnale Vsense se ne va all' istante "avvertendo" il micro per tempo.
Tieni presente che il micro deve accorgersi della mancanza di tensione prima che questa venga tolta a lui altrimenti il micro si spege e buonanotte ai suonatori. Per fare questo devi usare opportuni accorgimenti. Ad esempio se il micro è alimentato tramite un regolatore di tensione puoi rilevare la presenza di tensione a monte del regolatore usando un circuito del genere
Il diodo D1 fa in modo che quando l' alimentazione va via il condensatore Cin resti carico per il tempo sufficiente a far svolgere al micro le operazioni di chiusura mentre il segnale Vsense se ne va all' istante "avvertendo" il micro per tempo.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
Ciao TardoFreak, grazie 1000 per la risposta...dunque, il programma è fatto bene, o almeno va in esecuzione perfettamente nel micro :), trattasi di un timer con possibilità di impostazione che aziona relay e via dicendo...per quanto riguarda il togliere alimentazione, di conseguenza non si spegnerebbe il display ecc?...a me interesserebbe che il display rimanga acceso dando la possibilità al micro di visualizzare il messaggio d'errore per il quale non sono partiti i processi...
0
voti
Non ho capito a chi vuoi togliere l' alimentazione.
Mi dici che il display deve rimanere acceso quindi deve per forza essere alimentato.
Hai quindi un circuito dove al micro viene tolta l' alimentazione lasciando il display alimentato?
Spiegati meglio, magari con uno schema a blocchi (disegnato con fidocad) perché non capisco.
Mi dici che il display deve rimanere acceso quindi deve per forza essere alimentato.
Hai quindi un circuito dove al micro viene tolta l' alimentazione lasciando il display alimentato?
Spiegati meglio, magari con uno schema a blocchi (disegnato con fidocad) perché non capisco.

"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
Forse mi sono espresso male....ciò che vorrei fare è che quando uno dei piedini del PIC riceve tensione interrompa tutti i processi visualizzando il messaggio, in questo caso mi trovo libero il RB0....ovvero se io ho un pulsantino N.C. collegato ad esempio alla +5V da una parte e dall'altra all'RB0, senza la pressione del pulsante con alimentazione del pin, il micro blocca tutti i processi in corso visualizzando il messaggio, alla mancanza di alimentazione sul pin RB0, i processi riprendono normalmente...hai presente le stampanti quando apri il coperchio delle cartucce mentre sta stampando???....blocca la stampa visualizzando il messaggio sul display, "chiudere coperchio cartucce" appena lo chiudi riprende la stampa....quello che vorrei fare è una cosa quasi identica....
0
voti
Allora è tutto più semplice!
Come ho detto prima puoi usare un' interrupt o testare continuamente lo stato del pin all' interno del ciclo principale di funzionamento. Dipende dal tempo di risposta. Se lo testi all' interno del loop il tempo di risposta è dato dalla durata massima che il ciclo di funzionamento ha, se usi l' interrupt è praticamente immediato.
Come ho detto prima puoi usare un' interrupt o testare continuamente lo stato del pin all' interno del ciclo principale di funzionamento. Dipende dal tempo di risposta. Se lo testi all' interno del loop il tempo di risposta è dato dalla durata massima che il ciclo di funzionamento ha, se usi l' interrupt è praticamente immediato.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
-

TardoFreak
73,9k 8 12 13 - -EY Legend-

- Messaggi: 15754
- Iscritto il: 16 dic 2009, 11:10
- Località: Torino - 3° pianeta del Sistema Solare
0
voti
Perfetto!!! l'interrupt da quel che ho letto è proprio il pin che ho libero RB0/INT, praticamente verrebbe una cosa del genere....giusto?

per quanto riguarda il codice...come potrei compilarlo?

per quanto riguarda il codice...come potrei compilarlo?
18 messaggi
• Pagina 1 di 2 • 1, 2
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 5 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)


