日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]在深度掉電模式,除了WAKUP引腳(P1.4),整個(gè)芯片都停止工作,而且只有4個(gè)32位的寄存器可供存儲(chǔ)用戶數(shù)據(jù),內(nèi)部SRAM中的數(shù)據(jù)都會(huì)丟失。1.怎樣進(jìn)入深度掉電模式執(zhí)行以下步驟進(jìn)入深度掉電模式:1. 設(shè)置PCON寄存器的DPD

在深度掉電模式,除了WAKUP引腳(P1.4),整個(gè)芯片都停止工作,而且只有4個(gè)32位的寄存器可供存儲(chǔ)用戶數(shù)據(jù),內(nèi)部SRAM中的數(shù)據(jù)都會(huì)丟失。

1.怎樣進(jìn)入深度掉電模式

執(zhí)行以下步驟進(jìn)入深度掉電模式:

1. 設(shè)置PCON寄存器的DPDEN位為1;

2. 把防止丟失的數(shù)據(jù)存儲(chǔ)到通用寄存器;

3. 設(shè)置SCR寄存器中的SLEEPDEEP位為1;

4. 在進(jìn)入深度掉電模式之前,確保PDRUNCFG寄存器中的IRCOUT_PD位和IRC_PD位為0;

5. 執(zhí)行WFI指令。

2.進(jìn)入深度掉電模式后,如何喚醒單片機(jī)

進(jìn)入深度掉電模式,只有一種途徑可以喚醒單片機(jī),那就是通過(guò)WAKUP引腳上的下降沿喚醒。

3示例程序

為了很容易的看到效果,這里用流水燈的運(yùn)行和停止運(yùn)行來(lái)觀察是否進(jìn)入睡眠模式。開(kāi)始流水燈執(zhí)行,過(guò)一會(huì)兒,進(jìn)入睡眠模式后,流水燈停止流水。

新建一個(gè)工程,結(jié)構(gòu)如下圖所示:

在main.c函數(shù)中,輸入以下代碼:

#include"lpc11xx.h"#include"pmu.h"#defineLED1_ONLPC_GPIO1->DATA&=~(1<<0)#defineLED1_OFFLPC_GPIO1->DATA|=(1<<0)#defineLED2_ONLPC_GPIO1->DATA&=~(1<<1)#defineLED2_OFFLPC_GPIO1->DATA|=(1<<1)/***********************************//*函數(shù)名稱(chēng):延時(shí)函數(shù)*//***********************************/voiddelay(){uint16_ti,j;for(i=0;i<5000;i++)for(j=0;j<200;j++);}/***********************************//*函數(shù)名稱(chēng):LED燈初始化*//***********************************/voidled_init(){LPC_SYSCON->SYSAHBCLKCTRL|=(1<<16);//使能IOCON時(shí)鐘LPC_IOCON->R_PIO1_0&=~0x07;LPC_IOCON->R_PIO1_0|=0x01;//把P1.0腳設(shè)置為GPIOLPC_IOCON->R_PIO1_1&=~0x07;LPC_IOCON->R_PIO1_1|=0x01;//把P1.1腳設(shè)置為GPIOLPC_SYSCON->SYSAHBCLKCTRL&=~(1<<16);//禁能IOCON時(shí)鐘LPC_GPIO1->DIR|=(1<<0);//把P1.0設(shè)置為輸出引腳LPC_GPIO1->DATA|=(1<<0);//把P1.0設(shè)置為高電平LPC_GPIO1->DIR|=(1<<1);//把P1.1設(shè)置為輸出引腳LPC_GPIO1->DATA|=(1<<1);//把P1.1設(shè)置為高電平}/***********************************//*函數(shù)名稱(chēng):主函數(shù)*//***********************************/intmain(){uint8_tcnt=0;led_init();while(1){delay();LED1_ON;LED2_OFF;delay();LED1_OFF;LED2_ON;cnt++;if(cnt>20){cnt=0;Entry_Deep_PD();}}}

第35行,main函數(shù)開(kāi)始看起。

第37行,定義了一個(gè)變量,用來(lái)計(jì)數(shù)。

第38行,初始化led。(關(guān)于初始化led的部分,請(qǐng)看第二章內(nèi)容)

第39行,進(jìn)入while循環(huán)。LED1和LED2將交替閃爍,知道cnt計(jì)數(shù)到20。

第51行,執(zhí)行進(jìn)入深度掉電模式函數(shù)。

在pmu.h文件中,輸入以下代碼:

#ifndef__LPC11XX_PMU_H#define__LPC11XX_PMU_HexternvoidEntry_Deep_PD(void);#endif

在pmu.c文件中,輸入以下代碼:

#include"lpc11xx.h"#include"pmu.h"voidEntry_Deep_PD(void){//step1LPC_PMU->PCON|=(1<<1);//DPDEN=1;選擇deep_power_down模式//step2(這一步可以保存需要保存的數(shù)據(jù))//LPC_PMU->GPREG0=;//LPC_PMU->GPREG1=;//LPC_PMU->GPREG2=;//LPC_PMU->GPREG3=;//step3SCB->SCR|=(1<<2);//SLEEPDEEP=1;//step4LPC_SYSCON->PDRUNCFG&=~(0X3);//確保IRCOUT_PD和IRC_PD為0//setp5__wfi();//寫(xiě)wfi指令進(jìn)入低功耗模式}

Entry_Deep_PD函數(shù),用來(lái)進(jìn)入深度掉電模式。

第6行,給PCON寄存器的bit1位寫(xiě)1,選擇深度掉電模式。

第8~9行,保存需要保存的數(shù)據(jù),我們現(xiàn)在的程序功能只是執(zhí)行流水燈,無(wú)需保存數(shù)據(jù),所以這一步省略。

第13行,給SCR寄存器的bit2寫(xiě)1,選擇深度掉電模式。

第15行,進(jìn)入深度掉電模式后,確保IRCOUT_PD和IRC_PD位為0。

第17行,執(zhí)行WFI指令。WFI是專(zhuān)門(mén)為了節(jié)省功耗設(shè)計(jì)的指令,執(zhí)行該指令后,單片機(jī)將掛起等待一個(gè)中斷到來(lái),掛起后,相當(dāng)于一直執(zhí)行NOP指令。

在RATION V3.0開(kāi)發(fā)板上,帶有WAKUP按鍵,可以按此鍵喚醒單片機(jī)。進(jìn)入深度掉電模式,復(fù)位按鍵失效,也不能自動(dòng)ISP下載程序。


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

中斷方式串口接收數(shù)據(jù)新建一個(gè)工程,結(jié)構(gòu)如下圖所示:在main.c文件中,輸入以下代碼:#include “l(fā)pc11xx.h”#include “uart.h”uint8_t rec_buf;void UART_IRQH...

關(guān)鍵字: Cortex lpc1114 mo uart 串口中斷 收發(fā)數(shù)據(jù)

LPC_IOCON->R_PIO1_0 &= ~0x07;LPC_IOCON->R_PIO1_0 |= 0x02;上面是設(shè)置P1.0為AD1的語(yǔ)句。P1.0低三位是引腳功能選擇位,所以配置低三位就可以...

關(guān)鍵字: lpc1114 引腳功能 設(shè)置

LPC1114內(nèi)部一共有4個(gè)定時(shí)器,2個(gè)32位定時(shí)器,2個(gè)16位定時(shí)器,使用方式都一樣,只是要注意使用16位定時(shí)器時(shí),寄存器的值不要超出65535。給它們分別取名稱(chēng)為CT16B0、CT16B1、CT32B0、CT32B1...

關(guān)鍵字: lpc1114 通用定時(shí)器

你還在為如何給LPC1114主控的電路板留程序下載接口而煩惱嗎?下面瑞生(Ration)以自己曾經(jīng)做過(guò)的項(xiàng)目為例給大家分享一下吧!1.LPC1114如何下載程序?這個(gè)當(dāng)然是你必須要知道的問(wèn)題。LPC1114一共2種下載方...

關(guān)鍵字: lpc1114 程序下載接口

#include\"ds18b20.h\"uint8_ttemp_sign;voiddelay_ds(uint16_tzz){uint8_txx;uint16_tyy;for(xx=0;xx

關(guān)鍵字: 18b20 lpc1114 測(cè)量溫度

某同學(xué):你好,看了基礎(chǔ)篇SysClk、GPIO、UART的例程,在用到IOCON模塊,UART模塊在SYSAHBCLKCTRL寄存器中都需要相應(yīng)時(shí)鐘允許位置1,IOCON使能,在設(shè)置完后又禁能,UART使用時(shí)只使能,不用...

關(guān)鍵字: lpc1114 iocon 模塊時(shí)鐘

32位的單片機(jī)內(nèi)部各種數(shù)據(jù)寄存器和控制寄存器都是32位的,同理,8位單片機(jī)內(nèi)部的數(shù)據(jù)和控制寄存器都是8位的。例如:AT89C51單片機(jī)的“中斷控制寄存器”IE定義如下圖所示:bit7bit6bit5bit4bit3bit...

關(guān)鍵字: ARM Cortex lpc1114 m0 寄存器配置

新建一個(gè)工程,結(jié)構(gòu)如下圖所示:timer.h文件和timer.c文件用上一節(jié)的。在timer.h中增加兩個(gè)變量和兩個(gè)函數(shù)的聲明,如下所示:#ifndef __NXPLPC11xx_TIME_H__#define __NX...

關(guān)鍵字: lpc1114 pwm 通用定時(shí)器

LPC1114的中斷,由中斷控制模塊NVIC控制。一共32個(gè)中斷,每個(gè)中斷的優(yōu)先級(jí)可編程為 0~3 四種級(jí)別。級(jí)別越高對(duì)應(yīng)的優(yōu)先級(jí)越低。因此,級(jí)別0 是最高的中斷優(yōu)先級(jí)。設(shè)置中斷優(yōu)先級(jí)的函數(shù),CMISIS已經(jīng)寫(xiě)好,并嵌入...

關(guān)鍵字: cortex-m0 lpc1114 中斷優(yōu)先級(jí)

LPC1114有一個(gè)串口,具備標(biāo)準(zhǔn)9針串口的所有功能引腳:RXD、TXD、RTS、CTS、DTR、DSR、DCD、IR一般情況下,我們只用到RXD和TXD。在這一章,只對(duì)RXD和TXD的使用做介紹??梢杂糜诔绦蛳螺d??梢?..

關(guān)鍵字: Cortex lpc1114 m0 串口 收發(fā)數(shù)據(jù) uart查詢(xún)
關(guān)閉