/************************************************************************** * * Copyright (c) 2019-2020 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file RTC.h * * @author (last) Dara Navaei * @date (last) 18-Mar-2020 * * @author (original) Dara Navaei * @date (original) 11-Jan-2020 * ***************************************************************************/ #ifndef _RTC_H_ #define _RTC_H_ #include "Common.h" /// RTC RAM status typedef enum RTC_RAM_STATUS { RTC_RAM_STATUS_IDLE = 0, ///< Status idle RTC_RAM_STATUS_IN_PROGRESS, ///< Status in progress RTC_RAM_STATUS_BYTES_EXCEEDED, ///< Status bytes exceeded RTC_RAM_STATUS_ILLEGAL_ADDRESS, ///< Status illegal address RTC_RAM_STATUS_FAILED, ///< Status failed RTC_RAM_STATUS_COMPLETE ///< Status complete } RTC_RAM_STATUS_T; /// RTC RAM states typedef enum RTC_RAM_STATE { RTC_RAM_STATE_READY = 0, ///< RAM ready RTC_RAM_STATE_BUSY ///< RAM busy } RTC_RAM_STATE_T; void initRTC( void ); void execRTC( void ); BOOL setRTCTimestamp( U08 secs, U08 mins, U08 hours, U08 days, U08 months, U32 years ); U32 getRTCTimestamp( void ); SELF_TEST_STATUS_T execRTCSelfTest( void ); RTC_RAM_STATUS_T writeToRAM( U32 address, U08* data, U32 length ); RTC_RAM_STATUS_T readFromRAM( U32 address, U32 length ); RTC_RAM_STATUS_T getRTCRAMStatus( void ); RTC_RAM_STATE_T getRTCRAMState( void ); void getDataFromRAM( U08* externalBuffer, U32 length ); #endif