sleep(); komutunda pic ne kadar enerji harcar?

Başlatan Recep METE, 26 Nisan 2016, 13:31:44

Recep METE

sleep(); komutunda pic ne kadar enerji harcar? Uyku modunda uyutulan pic' te enerj harcaması sıfır mıdır? Bir de sleep modundan ancak reset yaparak mı uyandırabiliriz veya başka bir kodla uyandırabilir miyiz? Yanıtlarsanız memnun olurum.
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d

Tagli

#1
uA seviyelerine düşmekle birlikte tam sıfır olmaz. PIC'in besleme gerilimine ve içinde çalışan modüllere göre de bu akım değişir. Örneğin WDT veya harici kristal ile Timer1 çalışması bu akımı arttırır. PIC'in normal çalışma ve uyku akımları datasheet'te ayrıntılı bir tablo olarak verilir.

Uykudan çıkmak için genelde harici bir kesme gerekir. Asenkron çalışan Timer1 gibi kaynaklar da gerekli kesmeyi sağlayabilir ama mesela USART RX kesmesi işe yaramaz çünkü PIC clock'ları uyku halinde devre dışı olduğundan zaten alım işlemi yapılamaz. PIC'i uykudan uyandırabilecek kesme kaynakları modele göre değişebilir, ilgili datasheet'e bakmak lazım. Örneğin dahili RTCC olan modellerde genelde önceden kurulu bir alarma göre uyanma yapmak mümkün oluyor.

Uykudan çıkmanın bir başka yolu da WDT taşmasıdır. Bunun için uykuda WDT'nin çalışır olması gerekir.

Uykudan her ne kadar genelde kesme ile çıkılsa da, işlemci kesme kodunu çalıştırmayabilir. Aklımda yanlış kalmadıysa bu durum GIE'nin 1 olup olmaması ile ilgili. Kesme izin bit'i 1 ama GIE 0 ise, kesme PIC'i uyandırır ama kesme koduna atlamaz, sleep'ten sonra devam eder.
Gökçe Tağlıoğlu

Recep METE

Detaylı açıklaman için çok teşekkür ederim Tagli hocam.
printf(lcd_putc,"\f  Ne kadar okursan oku, bilgine, yakışır şekilde davranmıyorsan cahilsin demektir.  \n   semfero");d