brat 发表于 2011-7-12 10:09:20

M0LPC1100低功耗代码,实测deep sleep下4uA

RT,废话不说,上代码,希望对大家有用


LPC_IOCON->PIO2_6 &= ~(3<<3);
LPC_IOCON->PIO2_0 &= ~(3<<3);
LPC_IOCON->RESET_PIO0_0 &= ~(3<<3);        LPC_IOCON->RESET_PIO0_0 |= (1<<0);                // PIO0_0 As GPIO
//LPC_IOCON->RESET_PIO0_0 |= 0;                        // PIO0_0 As Reset with internal pull up res
LPC_IOCON->PIO0_1 &= ~(3<<3);                        LPC_IOCON->PIO0_1 &= ~(1<<5);
LPC_IOCON->PIO1_8 &= ~(3<<3);
LPC_IOCON->PIO0_2 &= ~(3<<3);
LPC_IOCON->PIO2_7 &= ~(3<<3);
LPC_IOCON->PIO2_8 &= ~(3<<3);
LPC_IOCON->PIO2_1 &= ~(3<<3);
LPC_IOCON->PIO0_3 &= ~(3<<3);
LPC_IOCON->PIO0_4 &= ~(3<<3);                        // SCL
LPC_IOCON->PIO0_5 &= ~(3<<3);                        // SDA
LPC_IOCON->PIO1_9 &= ~(3<<3);
LPC_IOCON->PIO3_4 &= ~(3<<3);
LPC_IOCON->PIO2_4 &= ~(3<<3);
LPC_IOCON->PIO2_5 &= ~(3<<3);
LPC_IOCON->PIO3_5 &= ~(3<<3);
LPC_IOCON->PIO0_6 &= ~(3<<3);
LPC_IOCON->PIO0_7 &= ~(3<<3);
LPC_IOCON->PIO2_9 &= ~(3<<3);
LPC_IOCON->PIO2_10&= ~(3<<3);
LPC_IOCON->PIO2_2 &= ~(3<<3);
LPC_IOCON->PIO0_8 &= ~(3<<3);
LPC_IOCON->PIO0_9 &= ~(3<<3);
LPC_IOCON->JTAG_TCK_PIO0_10&= ~(3<<3);        LPC_IOCON->JTAG_TCK_PIO0_10|= (1<<0);                // PIO0_10 As GPIO
LPC_IOCON->PIO1_10&= ~(3<<3);
LPC_IOCON->PIO2_11&= ~(3<<3);
LPC_IOCON->JTAG_TDI_PIO0_11&= ~(3<<3);        LPC_IOCON->JTAG_TDI_PIO0_11|= (1<<0);                // PIO0_11 As GPIO
LPC_IOCON->JTAG_TMS_PIO1_0 &= ~(3<<3);        LPC_IOCON->JTAG_TMS_PIO1_0 |= (1<<0);                // PIO1_0 As GPIO
LPC_IOCON->JTAG_TDO_PIO1_1 &= ~(3<<3);        LPC_IOCON->JTAG_TDO_PIO1_1 |= (1<<0);                // PIO1_1 As GPIO
LPC_IOCON->JTAG_nTRST_PIO1_2 &= ~(3<<3);        LPC_IOCON->JTAG_nTRST_PIO1_2 |= (1<<0);                // PIO1_2 As GPIO
LPC_IOCON->PIO3_0 &= ~(3<<3);
LPC_IOCON->PIO3_1 &= ~(3<<3);
LPC_IOCON->PIO2_3 &= ~(3<<3);
LPC_IOCON->ARM_SWDIO_PIO1_3 &= ~(3<<3);        LPC_IOCON->ARM_SWDIO_PIO1_3 |= (1<<0);                // PIO1_3 As GPIO
LPC_IOCON->PIO1_4 &= ~(3<<3);
LPC_IOCON->PIO1_11&= ~(3<<3);
LPC_IOCON->PIO3_2 &= ~(3<<3);
LPC_IOCON->PIO1_5 &= ~(3<<3);
LPC_IOCON->PIO1_6 &= ~(3<<3);
LPC_IOCON->PIO1_7 &= ~(3<<3);
LPC_IOCON->PIO3_3 &= ~(3<<3);


                                                LPC_GPIO0->DIR = 0XFFF;
                                                LPC_GPIO0->DATA = 0X00;
                                                LPC_GPIO1->DIR = 0XFFF;
                                                LPC_GPIO1->DATA = 0X00;
                                                LPC_GPIO2->DIR = 0XFFF;
                                                LPC_GPIO2->DATA = 0X00;
                                                LPC_GPIO3->DIR = 0XFFF;
                                                LPC_GPIO3->DATA = 0X00;
                                                LPC_SYSCON->SYSAHBCLKCTRL |= 0X5BFFF;/*AHB clk ctrl,enable sys,Disable others*/
//                                                LPC_SYSCON->SYSAHBCLKCTRL = 0X1F;/*AHB clk ctrl,enable sys,Disable others*/

                                                LPC_SYSCON->PDRUNCFG &= ~((1<<0)|(1<<1)|(1<<2)) ;

                                                LPC_SYSCON->MAINCLKSEL = 0x00;                /* Select wdt*/
                                                LPC_SYSCON->MAINCLKUEN = 0x01;                /* Update MCLK clock source */
                                                LPC_SYSCON->MAINCLKUEN = 0x00;                /* Toggle update register once */
                                                LPC_SYSCON->MAINCLKUEN = 0x01;
                                                while ( !(LPC_SYSCON->MAINCLKUEN & 0x01) );        /* Wait until updated */

                                                LPC_SYSCON->SYSAHBCLKDIV = 4;        /* FOR POWER NO EFFECT SYS AHB clock, typical is 1 or 2 or 4 */
///                                                LPC_SYSCON->SYSAHBCLKDIV = 0x00; //
                                                LPC_SYSCON->SYSPLLCLKSEL = 0x00; //


                                                LPC_SYSCON->SSP0CLKDIV = 0X00;
                                                LPC_SYSCON->UARTCLKDIV = 0X00;
                                                LPC_SYSCON->SSP1CLKDIV = 0X00;
                                                LPC_SYSCON->WDTCLKDIV = 0X00;
                                                LPC_SYSCON->CLKOUTDIV = 0X00;
                                                LPC_SYSCON->SYSTICKCLKDIV = 0X00;



                                                LPC_PMU->PCON |= (1<<11);
                                                LPC_PMU->PCON |= (1<<8);

                                                LPC_SYSCON->PDSLEEPCFG |= 0x000018ff;/*all phy power down during deep-sleep mode*/

                                                LPC_SCB->SCR |= (1<<2);
                                                __WFI();

shuailong0411 发表于 2012-9-21 15:24:57

最近也在测LPC111X的低耗,用普通万用表能测吗?你用的是什么表?
页: [1]
查看完整版本: M0LPC1100低功耗代码,实测deep sleep下4uA