MAX32625PICO LP1 mode

Dependencies:   SX1276GenericLib USBDevice

Fork of PICO_LP1 by Walter Luu

Committer:
walterluu
Date:
Fri Oct 16 06:46:00 2020 +0000
Revision:
7:8875c4d513bb
Parent:
6:51f492ca61a2
MAX32625PICO LP1 mode;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
walterluu 0:664d9df11a00 1 #include "mbed.h"
walterluu 3:85fc843a9d7d 2
walterluu 7:8875c4d513bb 3 // Low Power Mode
walterluu 7:8875c4d513bb 4 #include "lp.h"
walterluu 7:8875c4d513bb 5 #include "mxc_config.h"
walterluu 7:8875c4d513bb 6 #include "lp.h"
walterluu 7:8875c4d513bb 7 #include "rtc.h"
walterluu 7:8875c4d513bb 8 #define LP1_WakeTime 3 //seconds
walterluu 3:85fc843a9d7d 9
walterluu 3:85fc843a9d7d 10 /***************************************************************************
walterluu 3:85fc843a9d7d 11 * LEDs Instantiation
walterluu 3:85fc843a9d7d 12 **************************************************************************/
walterluu 7:8875c4d513bb 13 //DigitalOut gLED(LED2); // green LED
walterluu 7:8875c4d513bb 14 //DigitalOut rLED(LED1); // red LED
walterluu 7:8875c4d513bb 15 //DigitalOut bLED(LED3); // blue LED
walterluu 0:664d9df11a00 16
walterluu 0:664d9df11a00 17
walterluu 7:8875c4d513bb 18 // *****************************************************************************
walterluu 7:8875c4d513bb 19 void RTC_Setup()
walterluu 7:8875c4d513bb 20 {
walterluu 7:8875c4d513bb 21 rtc_cfg_t RTCconfig;
walterluu 0:664d9df11a00 22
walterluu 7:8875c4d513bb 23 // RTCconfig.compareCount[0] = 3;//3 second timer
walterluu 7:8875c4d513bb 24 RTCconfig.compareCount[1] = LP1_WakeTime; //3 second timer
walterluu 7:8875c4d513bb 25 RTCconfig.prescaler = RTC_PRESCALE_DIV_2_12; //1Hz clock
walterluu 7:8875c4d513bb 26 RTCconfig.prescalerMask = RTC_PRESCALE_DIV_2_12;//used for prescaler compare
walterluu 7:8875c4d513bb 27 RTCconfig.snoozeCount = 0;
walterluu 7:8875c4d513bb 28 RTCconfig.snoozeMode = RTC_SNOOZE_DISABLE;
walterluu 0:664d9df11a00 29
walterluu 7:8875c4d513bb 30 RTC_Init(&RTCconfig);
walterluu 7:8875c4d513bb 31
walterluu 7:8875c4d513bb 32 RTC_Start();
walterluu 6:51f492ca61a2 33 }
walterluu 6:51f492ca61a2 34
walterluu 0:664d9df11a00 35 int main() {
walterluu 3:85fc843a9d7d 36
walterluu 7:8875c4d513bb 37 // Set all LEDs off
walterluu 7:8875c4d513bb 38 // gLED = LED_OFF;
walterluu 7:8875c4d513bb 39 // rLED = LED_OFF;
walterluu 7:8875c4d513bb 40 // bLED = LED_OFF;
walterluu 3:85fc843a9d7d 41
walterluu 7:8875c4d513bb 42 //configure RTC and start
walterluu 7:8875c4d513bb 43 RTC_Setup();
walterluu 6:51f492ca61a2 44
walterluu 7:8875c4d513bb 45 while (1) {
walterluu 7:8875c4d513bb 46
walterluu 7:8875c4d513bb 47 // Set all LEDs off
walterluu 7:8875c4d513bb 48 // gLED = LED_OFF;
walterluu 7:8875c4d513bb 49 // rLED = LED_OFF;
walterluu 7:8875c4d513bb 50 // bLED = LED_OFF;
walterluu 7:8875c4d513bb 51
walterluu 3:85fc843a9d7d 52
walterluu 3:85fc843a9d7d 53 /***************************************************************************
walterluu 7:8875c4d513bb 54 * LP1 Experiment
walterluu 3:85fc843a9d7d 55 **************************************************************************/
walterluu 7:8875c4d513bb 56 //Clear existing wake-up config
walterluu 7:8875c4d513bb 57 LP_ClearWakeUpConfig();
walterluu 7:8875c4d513bb 58
walterluu 7:8875c4d513bb 59 //Clear any event flags
walterluu 7:8875c4d513bb 60 LP_ClearWakeUpFlags();
walterluu 7:8875c4d513bb 61
walterluu 7:8875c4d513bb 62 //configure wake-up on RTC compare 1
walterluu 7:8875c4d513bb 63 LP_ConfigRTCWakeUp(0, 1, 0, 0);
walterluu 7:8875c4d513bb 64
walterluu 7:8875c4d513bb 65
walterluu 7:8875c4d513bb 66 //set RTC compare 1 value
walterluu 7:8875c4d513bb 67 uint32_t cmp = RTC_GetCount() + LP1_WakeTime;
walterluu 7:8875c4d513bb 68 RTC_SetCompare(1,cmp);
walterluu 7:8875c4d513bb 69 RTC_ClearFlags(MXC_F_RTC_FLAGS_COMP1);
walterluu 7:8875c4d513bb 70
walterluu 7:8875c4d513bb 71 //global disable interrupt
walterluu 7:8875c4d513bb 72 __disable_irq();
walterluu 7:8875c4d513bb 73
walterluu 7:8875c4d513bb 74 LP_EnterLP1();
walterluu 7:8875c4d513bb 75
walterluu 7:8875c4d513bb 76 //global enable interrupt
walterluu 7:8875c4d513bb 77 __enable_irq();
walterluu 3:85fc843a9d7d 78
walterluu 7:8875c4d513bb 79 // LP1 Wakes up
walterluu 7:8875c4d513bb 80 // gLED = LED_ON;
walterluu 7:8875c4d513bb 81 wait(1);
walterluu 3:85fc843a9d7d 82
walterluu 3:85fc843a9d7d 83 } // end of while(1) loop
walterluu 3:85fc843a9d7d 84
walterluu 6:51f492ca61a2 85 } // end of main()