main.c
上传用户:zsq11688
上传日期:2022-07-12
资源大小:1k
文件大小:2k
源码类别:

微处理器开发

开发平台:

C/C++

  1. //  冬眠模块按键唤醒示例
  2. #include  "hw_types.h"
  3. #include  "hw_memmap.h"
  4. #include  "hw_sysctl.h"
  5. #include  "hw_gpio.h"
  6. #include  "hw_hibernate.h"
  7. #include  "sysctl.h"
  8. #include  "gpio.h"
  9. #include  "hibernate.h"
  10. /*  定义LED  */
  11. #define  LED_PORT               SYSCTL_PERIPH_GPIOA
  12. #define  LED_PIN                GPIO_PORTA_BASE , GPIO_PIN_7
  13. #define  ledOn()                GPIOPinWrite(LED_PIN , (0 << 7))
  14. #define  ledOff()               GPIOPinWrite(LED_PIN , (1 << 7))
  15. #define  ledToggle()            GPIOPinWrite(LED_PIN , ~GPIOPinRead(LED_PIN))
  16. int  main(void)
  17. {
  18.     SysCtlLDOSet(SYSCTL_LDO_2_50V);                      /*  设置LDO输出电压             */
  19.     SysCtlClockSet(SYSCTL_USE_OSC |                       /*  系统时钟设置,采用主振荡器  */
  20.                    SYSCTL_OSC_MAIN |
  21.                    SYSCTL_XTAL_8MHZ |
  22.                    SYSCTL_SYSDIV_1);
  23.     SysCtlPeripheralEnable(LED_PORT);                    /*  使能LED所在的GPIO端口       */
  24.     GPIOPinTypeGPIOOutput(LED_PIN);                      /*  设置LED所在管脚为输出       */
  25.     ledOff();                                            /*  熄灭LED                     */
  26.     SysCtlPeripheralEnable(SYSCTL_PERIPH_HIBERNATE);     /*  使能冬眠模块                */
  27.     if ( !HibernateIsActive() )                                /*  如果冬眠模块未被激活        */
  28.     {  
  29. ledOn();                                         /*  点亮LED指示灯               */
  30.         HibernateEnableExpClk(SysCtlClockGet());               /*  使能冬眠                    */
  31.         HibernateClockSelect(HIBERNATE_CLOCK_SEL_DIV128);     /*  选择4.1943MHz晶体/128       */
  32. SysCtlDelay(25 * (SysCtlClockGet( ) / 4000)); 
  33.         HibernateWakeSet(HIBERNATE_WAKE_PIN);                  /*  进入冬眠后采用外部管脚唤醒  */
  34.     }
  35. SysCtlDelay(2500 * (SysCtlClockGet( ) / 4000)); 
  36.     HibernateRequest();                                        /*  请求进入冬眠状态            */
  37.     for (;;) 
  38. {
  39.     }
  40. }