Programació en ASM del PIC 16F690 amb PICkit 2

Referència Trucs Perifèrics   Recursos CITCEA
Tutorial Exemples Projectes   Inici

Mode d'espera

En alguns casos tenim programes en els que el microcontrolador passa bona part del temps sense fer res útil, simplement esperant que succeeixi alguna cosa. En alguns d'aquests casos podem posar el microcontrolador en mode d'espera i estalviar energia.

Quan el microcontrolador està en mode d'espera deixa d'executar instruccions i atura alguns dels seus elements. Per despertar al microcontrolador cal que succeeixi una interrupció d'alguns tipus determinats (externa, canvis al port A, perifèrics o amb el watchdog). La interrupció del timer 0 no es pot fer servir ja que aquest temporitzador s'atura en el mode d'espera. Cal que la interrupció que ha de poder despertar estigui activada però no cal que ho estiguin les interrupcions a nivell global si el programa no les fa servir per a altres coses.

Si volem estalviar el màxim d'energia caldrà que desactivem els elements interns i externs del microcontrolador que siguin necessaris abans de posar el microcontrolador en mode d'espera.

Per posar el microcontrolador en mode d'espera només cal fer servir la funció SLEEP() (que està al fitxer xc.h) però abans ens hem d'assegurar que hem previst la manera de despertar-lo i hem preparat el programa per a que ho faci.

A l'exemple SL podem veure com funciona.

 

 

Licencia de Creative Commons
Esta obra de Oriol Boix está licenciada bajo una licencia no importada Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0.