Grazie mille in anticipo per l'aiuto
Sleep mode per PIC18f4550
Moderatore:
Paolino
8 messaggi
• Pagina 1 di 1
1
voti
Ciao a tutti
vorrei chiedervi una mano su come posso attivare la sleep mode sul mio pic18f4550 tramite un pulsante. Ho cercato esempi su internet ma per il mio PIC non ho trovato esempi. Da quel che ho capito serve un interrupt giusto?
o posso mandarlo in sleep mode anche senza interrupt usando un if o un while?
Grazie mille in anticipo per l'aiuto
Grazie mille in anticipo per l'aiuto
2
voti
La storia dell' if e del while non capisco cosa ci azzecchi con lo stato di sleep.
Quando la MPU è in sleep è ferma, viene poi risvegliata da un' interrupt, ad esempio un ingresso esterno di interrupt.
Sempre che tu la voglia far dormire davvero (lo si fa per motivi di consumo) altrimenti de devi solo fare in modo che aspetti qualcosa e non te ne frega niente dei consumi la "inluppi" e finito il chiasso.
Quando la MPU è in sleep è ferma, viene poi risvegliata da un' interrupt, ad esempio un ingresso esterno di interrupt.
Sempre che tu la voglia far dormire davvero (lo si fa per motivi di consumo) altrimenti de devi solo fare in modo che aspetti qualcosa e non te ne frega niente dei consumi la "inluppi" e finito il chiasso.
"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
1
voti
chri36 ha scritto:Ciao a tuttivorrei chiedervi una mano su come posso attivare la sleep mode sul mio pic18f4550 tramite un pulsante. Ho cercato esempi su internet ma per il mio PIC non ho trovato esempi. Da quel che ho capito serve un interrupt giusto?
o posso mandarlo in sleep mode anche senza interrupt usando un if o un while?
![]()
Grazie mille in anticipo per l'aiuto
Ciao. Per svegliare un PIC tramite un pulsante ti basta collegarlo alla porta INT0 e poi accertarti che il PIC, prima che vada in modalità sleep, abbia il GIE (enable interrupt) settato a 1. Tutto qui. :)
-

giovannispina
126 1 3 - Messaggi: 43
- Iscritto il: 27 lug 2013, 12:31
0
voti
chri36 ha scritto:[...] attivare la sleep mode sul mio pic18f4550 tramite un pulsante. [...]
[...] posso mandarlo in sleep mode [...]
Spe' però da come hai scritto sembra che tu voglia mandare il PIC in sleep e non farlo uscire...
Se così fosse ti basta un controllo sullo stato del pulsante nel ciclo principale del tuo programma che in caso avvia l'istruzione sleep con tutti gli annessi e connessi.
Farlo uscire poi è un altro conto e si fa come ti hanno suggerito prima
Anyone who has never made a mistake has never tried anything new
Two things are infinite: universe and human stupidity, and I'm not sure about the former
You did not really understand something unless you can explain it to your grandmother
A. Einstein
Two things are infinite: universe and human stupidity, and I'm not sure about the former
You did not really understand something unless you can explain it to your grandmother
A. Einstein
-

Shockwaver
770 1 5 11 - Expert

- Messaggi: 859
- Iscritto il: 3 mar 2010, 18:56
1
voti
Un'altra cosa molto importante. La modalità di sleep ha senso principalmente per motivi di riduzione dei consumi (come già fatto osservare da
TardoFreak). Invocare l'istruzione sleep non è però garanzia di consumi ridotti! Devi assicurarti di aver spento le periferiche che durante la modalità di sleep non servono, ad esempio il modulo ADC, qualche timer, la porta seriale, ecc. In questo modo, in sleep e con le periferiche spente, si ottengono davvero consumi minimi.
La scelta di cosa disattivare prima di sleep (che poi va riattivato al risveglio della CPU) dipende dall'applicazione.
Ciao.
Paolo.
La scelta di cosa disattivare prima di sleep (che poi va riattivato al risveglio della CPU) dipende dall'applicazione.
Ciao.
Paolo.
"Houston, Tranquillity Base here. The Eagle has landed." - Neil A.Armstrong
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-------------------------------------------------------------
PIC Experience - http://www.picexperience.it
-

Paolino
32,6k 8 12 13 - G.Master EY

- Messaggi: 4226
- Iscritto il: 20 gen 2006, 11:42
- Località: Vigevano (PV)
1
voti
Dimenticavo. Settare il bit GIE non basta, bisogna anche settare il relativo bit dell'interrupt per il risveglio. Nell'esempio di
giovannispina il bit INT0IE nel registro INTCON.
Rimane da capire cosa devi fare...
Rimane da capire cosa devi fare...
Anyone who has never made a mistake has never tried anything new
Two things are infinite: universe and human stupidity, and I'm not sure about the former
You did not really understand something unless you can explain it to your grandmother
A. Einstein
Two things are infinite: universe and human stupidity, and I'm not sure about the former
You did not really understand something unless you can explain it to your grandmother
A. Einstein
-

Shockwaver
770 1 5 11 - Expert

- Messaggi: 859
- Iscritto il: 3 mar 2010, 18:56
0
voti
Io vorrei che quando premo un pulsante su RB4 lui entri in sleep mode spegnendo un display che ho già configurato e tutto :) solo che non riesco a farlo andare in sleep mode :/
0
voti
chri36 ha scritto:Io vorrei che quando premo un pulsante su RB4 lui entri in sleep mode spegnendo un display che ho già configurato e tutto :) solo che non riesco a farlo andare in sleep mode :/
- Codice: Seleziona tutto
void main()
{
// main loop
for (;;) {
// your code
if (PORTB.B4)
_asm { SLEEP }
}
}
Dici così?
-

giovannispina
126 1 3 - Messaggi: 43
- Iscritto il: 27 lug 2013, 12:31
8 messaggi
• Pagina 1 di 1
Torna a Firmware e programmazione
Chi c’è in linea
Visitano il forum: Nessuno e 4 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)