NAMote72 Utility Application – Serial Terminal Monitor control for NAMote72 (note: this application replaces the previous na_mote1 test code application)

Dependencies:   SX127x lib_gps lib_mma8451q lib_mpl3115a2 lib_sx9500 mbed

Fork of na_mote1 by wayne roberts

See wiki Page for a detailed

This is a link to the wiki page

Revision:
17:f73dbeca8736
Parent:
16:b8648db86f86
--- a/rtc_alarm.c	Fri Jan 15 18:28:50 2016 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-/* mbed 
- * Copyright (c) 
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-#include "rtc_alarm.h"
-#include <stdio.h> 
-
-/*
-  The MCU can be woken up from low-power mode by an RTC Alarm event, an RTC 
-  Wakeup event, a tamper event, a time-stamp event, or a comparator event, 
-  without depending on an external interrupt (Auto-wakeup mode).
-
-(+) RTC auto-wakeup (AWU) from the Stop mode
-    (++) To wake up from the Stop mode with an RTC alarm event, it is necessary to:
-         (+++) Configure the EXTI Line 17 to be sensitive to rising edges (Interrupt 
-               or Event modes) and Enable the RTC Alarm Interrupt using the HAL_RTC_SetAlarm_IT()
-               function
-         (+++) Configure the RTC to generate the RTC alarm using the HAL_RTC_Init() 
-               and HAL_RTC_SetTime() functions.
-    (++) To wake up from the Stop mode with an RTC Tamper or time stamp event, it 
-         is necessary to:
-         (+++) Configure the EXTI Line 19 to be sensitive to rising edges (Interrupt or Event modes) and
-               Enable the RTC Tamper or time stamp Interrupt using the HAL_RTCEx_SetTamper_IT() 
-               or HAL_RTCEx_SetTimeStamp_IT() functions.
-    (++) To wake up from the Stop mode with an RTC WakeUp event, it is necessary to:
-         (+++) Configure the EXTI Line 20 to be sensitive to rising edges (Interrupt or Event modes) and
-               Enable the RTC WakeUp Interrupt using the HAL_RTCEx_SetWakeUpTimer_IT() function.
-         (+++) Configure the RTC to generate the RTC WakeUp event using the HAL_RTCEx_SetWakeUpTimer() 
-               function.
-*/
-
-extern RTC_HandleTypeDef RtcHandle;
-
-#if 0
-typedef struct
-{
-  RTC_TypeDef                 *Instance;  /*!< Register base address    */
-  RTC_InitTypeDef             Init;       /*!< RTC required parameters  */ 
-  HAL_LockTypeDef             Lock;       /*!< RTC locking object       */
-  __IO HAL_RTCStateTypeDef    State;      /*!< Time communication state */
-} RTC_HandleTypeDef;
-
-HAL_RTCEx_WakeUpTimerIRQHandler():
-    __HAL_RTC_WAKEUPTIMER_GET_IT():
-        ->Instance->ISR
-    ->Instance->CR
-    HAL_RTCEx_WakeUpTimerEventCallback():
-        (none)
-    __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG():
-        ->Instance->ISR
-    ->State
-
-HAL_RTCEx_SetWakeUpTimer_IT():
-    __HAL_LOCK():
-        ->Lock
-    ->State
-    __HAL_RTC_WRITEPROTECTION_DISABLE():
-    __HAL_RTC_WAKEUPTIMER_DISABLE():
-    __HAL_RTC_WAKEUPTIMER_GET_FLAG():
-    __HAL_RTC_WRITEPROTECTION_ENABLE():
-    __HAL_UNLOCK():
-    ->Instance->WUTR
-    ->Instance->CR
-    __HAL_RTC_WAKEUPTIMER_ENABLE():
-
-HAL_RTCEx_DeactivateWakeUpTimer():
-
-#endif /* #if 0 */
-
-static void rtc_wkup_irq(void)
-{
-    HAL_RTCEx_WakeUpTimerIRQHandler(&RtcHandle);
-}
-
-void rtc_alarm_init()
-{
-    /* Enable Ultra low power mode */
-    HAL_PWREx_EnableUltraLowPower();
-
-    /* Enable the fast wake up from Ultra low power mode */
-    HAL_PWREx_EnableFastWakeUp();
-
-    NVIC_SetVector(RTC_WKUP_IRQn, (uint32_t)rtc_wkup_irq);
-    NVIC_EnableIRQ(RTC_WKUP_IRQn);
-}
-
-void rtc_alarm_start(uint32_t seconds)
-{
-    /* Disable Wakeup Counter */
-    HAL_RTCEx_DeactivateWakeUpTimer(&RtcHandle);
-
-/*
-RTC_WAKEUPCLOCK_RTCCLK_DIV16        488.3us steps, upto 32s
-RTC_WAKEUPCLOCK_RTCCLK_DIV8         244us steps
-RTC_WAKEUPCLOCK_RTCCLK_DIV4         122us steps
-RTC_WAKEUPCLOCK_RTCCLK_DIV2:        61.035us steps
-RTC_WAKEUPCLOCK_CK_SPRE_16BITS      1s steps
-RTC_WAKEUPCLOCK_CK_SPRE_17BITS      1s steps
-*/
-    
-    /* ## Setting the Wake up time ############################################*/
-    /* see RM0038 section 20.3.4 */
-    //HAL_RTCEx_SetWakeUpTimer_IT(&RtcHandle, seconds, RTC_WAKEUPCLOCK_RTCCLK_DIV16);
-    HAL_RTCEx_SetWakeUpTimer_IT(&RtcHandle, seconds, RTC_WAKEUPCLOCK_CK_SPRE_16BITS);
-
-}
-
-void rtc_print_subseconds()
-{
-    printf("ssr:%04x ", RtcHandle.Instance->SSR);
-}
-
-time_t rtc_read_with_subseconds(void)
-{
-    RTC_DateTypeDef dateStruct;
-    RTC_TimeTypeDef timeStruct;
-    struct tm timeinfo;
-
-    RtcHandle.Instance = RTC;
-
-    // Read actual date and time
-    // Warning: the time must be read first!
-    HAL_RTC_GetTime(&RtcHandle, &timeStruct, FORMAT_BIN);
-    HAL_RTC_GetDate(&RtcHandle, &dateStruct, FORMAT_BIN);
-
-    // Setup a tm structure based on the RTC
-    timeinfo.tm_wday = dateStruct.WeekDay;
-    timeinfo.tm_mon  = dateStruct.Month - 1;
-    timeinfo.tm_mday = dateStruct.Date;
-    timeinfo.tm_year = dateStruct.Year + 100;
-    timeinfo.tm_hour = timeStruct.Hours;
-    timeinfo.tm_min  = timeStruct.Minutes;
-    timeinfo.tm_sec  = timeStruct.Seconds;
-
-    // Convert to timestamp
-    time_t t = mktime(&timeinfo);
-
-    t <<= 14;
-    printf("14:%08x ", t);
-
-    //return (t << 14) | timeStruct.Seconds;
-    return t | timeStruct.SubSeconds;
-}
-
-/**
-  * @brief  RTC Wake Up callback
-  * @param  None
-  * @retval None
-  */
-void HAL_RTCEx_WakeUpTimerEventCallback(RTC_HandleTypeDef *hrtc)
-{
-  /* Clear Wake Up Flag */
-  __HAL_PWR_CLEAR_FLAG(PWR_FLAG_WU);
-}
-