Wednesday, March 28, 2012

Modalità sleep

Lo sleep e' una particolare modalita' nella quale il microcontrollore cessa momentaneamente di eseguire istruzioni e si porta in uno stato di stand-by durante il quale i consumi di energia sono ridotti al minimo; e' possibile poi "risvegliare il PIC" in qualsiasi momento successivo. Questa modalita' e' utile nel caso in cui si voglia usare il PIC in sistemi alimentati a batteria o comunque dove i consumi sono un aspetto critico.

Entrare in modalita' sleep

Per far entrare il microcontrollore in modo sleep occorre eseguire l'istruzione SLEEP. I bit PD e TO del registroSTATUS vengono rispettivamente portati a 0 e 1, e l'oscillatore interno del pic viene arrestato (l'esecuzione del programma si ferma all'istruzione SLEEP). Inoltre le porte di I/O mantengono lo stato che avevano prima che il sistema si fermasse.

Risveglio dalla modalita' sleep

Il microcontrollore puo' essere risvegliato dalla modalita' grazie al verificarsi di uno dei seguenti eventi esterni: Reset del microcontrollore (pin MCLR a massa) Watch-Dog time-out Interrupt dal piedino RB0/INT Cambio di stato dei piedini RB0..RB7 Completamento della fase di scrittura della EEPROM Al risveglio il microcontrollore si comportera' consistentemente all'evento esterno verificatosi: nel primo caso (Reset) si avra' effettivamente un reset, nel secondo il PIC continuera' con l'esecuzione del programma dall'istruzione successiva a SLEEP. Negli ultimi tre casi invece, se gli interrupt sono abilitati (GIE=1) verranno "eseguiti" gli interrupt (esecuzione del programma a partire dalla locazione 0x0004 e cosi' via) altrimenti (GIE=0) si proseguira' con l'istruzione successiva a SLEEP. 

No comments:

Post a Comment