国产肉体XXXX裸体137大胆,国产成人久久精品流白浆,国产乱子伦视频在线观看,无码中文字幕免费一区二区三区 国产成人手机在线-午夜国产精品无套-swag国产精品-国产毛片久久国产

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > avr單片機(jī)電源管理及其睡眠模式配置說明

avr單片機(jī)電源管理及其睡眠模式配置說明

作者: 時(shí)間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
睡眠模式可以使應(yīng)用程序關(guān)閉 MCU 中沒有使用的模塊,從而降低功耗。AVR 具有不同 的睡眠模式,允許用戶根據(jù)自己的應(yīng)用要求實(shí)施剪裁。

/*
狀態(tài)寄存器SREG

本文引用地址:http://m.ptau.cn/article/201611/315764.htm

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

I T H S V N Z C

I:全局中斷使能位。

在I置位后,單獨(dú)的中斷使能由不同的中斷寄存器控制。若I為0,則禁止中斷。

MCU控制寄存器MCUCR

bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0

SM2 SE SM1 SM0 ISC11 ISC10 ISC01 ISC00

SE:MCU休眠使能位
為了使 MCU 在執(zhí)行 SLEEP 指令后進(jìn)入休眠模式, SE 必須置位。為了確保進(jìn)入休眠模
式是程序員的有意行為,建議僅在 SLEEP 指令的前一條指令置位 SE。MCU 一旦喚醒立
即清除 SE。

SM1~SM0:MCU休眠模式選擇

SM2 SM1 SM0 休眠模式

0 0 0 空閑

0 0 1 ADC 噪聲抑制模式

0 1 0 掉電模式

0 1 1 省電模式

1 0 0 保留

1 0 1 保留

1 1 0 Standby(1) 模式

1 1 1 擴(kuò)展Standby(1) 模式


空閑模式 當(dāng) SM2..0 為 000 時(shí),SLEEP 指令將使 MCU 進(jìn)入空閑模式。在此模式下, CPU 停止運(yùn)
行,而 LCD 控制器、 SPI、 USART、模擬比較器、ADC、 USI、定時(shí)器 / 計(jì)數(shù)器、看門
狗和中斷系統(tǒng)繼續(xù)工作。這個(gè)休眠模式只停止了clkCPU 和clkFLASH ,其他時(shí)鐘則繼續(xù)工作。

象定時(shí)器溢出與 USART 傳輸完成等內(nèi)外部中斷都可以喚醒 MCU。如果不需要從模擬比
較器中斷喚醒 MCU ,為了減少功耗,可以切斷比較器的電源。方法是置位模擬比較器控
制和狀態(tài)寄存器 ACSR 的 ACD。如果 ADC 使能,進(jìn)入此模式后將自動(dòng)啟動(dòng)一次轉(zhuǎn)換。

ADC 噪聲抑制模式 當(dāng) SM2..0 為 001 時(shí),SLEEP 指令將使 MCU 進(jìn)入噪聲抑制模式。在此模式下, CPU 停
止運(yùn)行,而 ADC、外部中斷、兩線接口地址配置、定時(shí)器 / 計(jì)數(shù)器 0 和看門狗繼續(xù)工作。
這個(gè)睡眠模式只停止了 clkI/O、 clkCPU 和 clkFLASH ,其他時(shí)鐘則繼續(xù)工作。

此模式提高了 ADC 的噪聲環(huán)境,使得轉(zhuǎn)換精度更高。 ADC 使能的時(shí)候,進(jìn)入此模式將
自動(dòng)啟動(dòng)一次AD 轉(zhuǎn)換。ADC 轉(zhuǎn)換結(jié)束中斷、外部復(fù)位、看門狗復(fù)位、 BOD 復(fù)位、兩線
接口地址匹配中斷、定時(shí)器 / 計(jì)數(shù)器 2 中斷、SPM/EEPROM 準(zhǔn)備好中斷、外部中斷 INT0
或 INT1 ,或外部中斷INT2 可以將 MCU 從 ADC 噪聲抑制模式喚醒。

掉電模式 當(dāng) SM2..0 為 010 時(shí), SLEEP 指令將使 MCU 進(jìn)入掉電模式。在此模式下,外部晶體停
振,而外部中斷、兩線接口地址匹配及看門狗 (如果使能的話)繼續(xù)工作。只有外部復(fù)
位、看門狗復(fù)位、 BOD 復(fù)位、兩線接口地址匹配中斷、外部電平中斷 INT0 或 INT1 ,或
外部中斷 INT2 可以使 MCU 脫離掉電模式。這個(gè)睡眠模式停止了所有的時(shí)鐘,只有異步
模塊可以繼續(xù)工作。

當(dāng)使用外部電平中斷方式將 MCU 從掉電模式喚醒時(shí),必須保持外部電平一定的時(shí)間。具
體請參見 P65“ 外部中斷 ” 。

從施加掉電喚醒條件到真正喚醒有一個(gè)延遲時(shí)間,此時(shí)間用于時(shí)鐘重新啟動(dòng)并穩(wěn)定下來。
喚醒周期與由熔絲位 CKSEL 定義的復(fù)位周期是一樣的,如 P23“ 時(shí)鐘源 ” 所示。

省電模式 當(dāng) SM2..0 為 011 時(shí), SLEEP 指令將使 MCU 進(jìn)入省電模式。這一模式與掉電模式只有
一點(diǎn)不同:

如果定時(shí)器 / 計(jì)數(shù)器 2 為異步驅(qū)動(dòng),即寄存器 ASSR 的 AS2 置位,則定時(shí)器 / 計(jì)數(shù)器 2 在
睡眠時(shí)繼續(xù)運(yùn)行。除了掉電模式的喚醒方式,定時(shí)器 / 計(jì)數(shù)器 2 的溢出中斷和比較匹配中
斷也可以將 MCU 從休眠方式喚醒,只要 TIMSK 使能了這些中斷,而且 SREG 的全局中
斷使能位 I 置位。

如果異步定時(shí)器不是異步驅(qū)動(dòng)的,建議使用掉電模式,而不是省電模式。因?yàn)樵谑‰娔J?br /> 下,若 AS2 為 0 ,則MCU 喚醒后異步定時(shí)器的寄存器數(shù)值是沒有定義的。

這個(gè)睡眠模式停止了除 clkASY 以外所有的時(shí)鐘,只有異步模塊可以繼續(xù)工作。

Standby 模式 當(dāng) SM2..0 為 110 時(shí), SLEEP 指令將使 MCU 進(jìn)入 Standby 模式。這一模式與掉電模式
唯一的不同之處在于振蕩器繼續(xù)工作。其喚醒時(shí)間只需要 6 個(gè)時(shí)鐘周期。

擴(kuò)展 Standby 模式 當(dāng) SM2..0 為 111 時(shí), SLEEP 指令將使 MCU 進(jìn)入擴(kuò)展的 Standby 模式。這一模式與省
掉電模式唯一的不同之處在于振蕩器繼續(xù)工作。其喚醒時(shí)間只需要 6 個(gè)時(shí)鐘周期。 .


*/
#include
#include
void Sleep_init(unsigned char mode)
{
switch(mode)
{
case 0: MCUCR&=~((1<case 1: MCUCR&=~((1<case 2: MCUCR&=~((1<case 3: MCUCR&=~(1<case 6: MCUCR|=1<case 7: MCUCR|=(1<default: MCUCR&=~((1<}

}
void SLEEP_ON(void)
{MCUCR|=1<asm("SLEEP");
}
void SLEEP_OFF(void)
{
MCUCR&=~(1<}



評(píng)論


技術(shù)專區(qū)

關(guān)閉