initial commit of kl25z rtc code. local changes for debug

Dependents:   demo_FRDM_RTC

Fork of KL25Z_RTC by clemente di caprio

Committer:
clemente
Date:
Fri Jun 21 02:22:00 2013 +0000
Revision:
3:2cee0b9ac1ff
Parent:
2:56a50064749e
Child:
4:3bd0dc0c2b2e
cleanup code. Added comments in .h file.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
clemente 0:12422f7c30d3 1 /* Copyright (c) 2010-2011 mbed.org, MIT License
clemente 0:12422f7c30d3 2 *
clemente 0:12422f7c30d3 3 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
clemente 0:12422f7c30d3 4 * and associated documentation files (the "Software"), to deal in the Software without
clemente 0:12422f7c30d3 5 * restriction, including without limitation the rights to use, copy, modify, merge, publish,
clemente 0:12422f7c30d3 6 * distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
clemente 0:12422f7c30d3 7 * Software is furnished to do so, subject to the following conditions:
clemente 0:12422f7c30d3 8 *
clemente 0:12422f7c30d3 9 * The above copyright notice and this permission notice shall be included in all copies or
clemente 0:12422f7c30d3 10 * substantial portions of the Software.
clemente 0:12422f7c30d3 11 *
clemente 0:12422f7c30d3 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
clemente 0:12422f7c30d3 13 * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
clemente 0:12422f7c30d3 14 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
clemente 0:12422f7c30d3 15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
clemente 0:12422f7c30d3 16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
clemente 0:12422f7c30d3 17 */
clemente 0:12422f7c30d3 18
clemente 0:12422f7c30d3 19 #ifndef __KL25Z_RTC_H
clemente 0:12422f7c30d3 20 #define __KL25Z_RTC_H
clemente 0:12422f7c30d3 21
clemente 0:12422f7c30d3 22 #include "mbed.h"
clemente 0:12422f7c30d3 23
clemente 2:56a50064749e 24 // Usage:
clemente 2:56a50064749e 25 // #include "mbed.h"
clemente 2:56a50064749e 26 // #include "KL25Z_RTC.h"
clemente 2:56a50064749e 27 //
clemente 2:56a50064749e 28 // DigitalOut myled(LED1);
clemente 2:56a50064749e 29 // KL25Z_RTC rtc( 15);
clemente 2:56a50064749e 30 // Serial pc(USBTX, USBRX);
clemente 2:56a50064749e 31 //
clemente 2:56a50064749e 32 // void alm ( void);
clemente 2:56a50064749e 33 // void sec ( void);
clemente 2:56a50064749e 34 //
clemente 2:56a50064749e 35 // int main() {
clemente 2:56a50064749e 36 //
clemente 2:56a50064749e 37 // pc.baud( 230400);
clemente 2:56a50064749e 38 // pc.printf("RTC Management.\r\n");
clemente 2:56a50064749e 39 //
clemente 2:56a50064749e 40 // rtc.RTC_Start( &sec, &alm);
clemente 2:56a50064749e 41 //
clemente 2:56a50064749e 42 // while(1) {
clemente 2:56a50064749e 43 // // pc.printf("RTC [%0d].\r\n", rtc.RTC_Read());
clemente 2:56a50064749e 44 // wait( 1.0);
clemente 2:56a50064749e 45 // }
clemente 2:56a50064749e 46 // }
clemente 2:56a50064749e 47 //
clemente 2:56a50064749e 48 // void sec ( void)
clemente 2:56a50064749e 49 // {
clemente 2:56a50064749e 50 // pc.printf("sec\r\n");
clemente 2:56a50064749e 51 // }
clemente 2:56a50064749e 52 //
clemente 2:56a50064749e 53 // void alm ( void)
clemente 2:56a50064749e 54 // {
clemente 2:56a50064749e 55 // pc.printf("alrm\r\n");
clemente 2:56a50064749e 56 // }
clemente 2:56a50064749e 57 //
clemente 2:56a50064749e 58
clemente 2:56a50064749e 59
clemente 0:12422f7c30d3 60 class KL25Z_RTC
clemente 0:12422f7c30d3 61 {
clemente 0:12422f7c30d3 62 public:
clemente 3:2cee0b9ac1ff 63 /** Constructor.
clemente 3:2cee0b9ac1ff 64 *
clemente 3:2cee0b9ac1ff 65 * @param alarm espressed in seconds
clemente 3:2cee0b9ac1ff 66 */
clemente 0:12422f7c30d3 67 KL25Z_RTC( unsigned int alarm);
clemente 3:2cee0b9ac1ff 68
clemente 3:2cee0b9ac1ff 69 /** Start the RTC module
clemente 3:2cee0b9ac1ff 70 * @param none
clemente 3:2cee0b9ac1ff 71 * @return none
clemente 3:2cee0b9ac1ff 72 */
clemente 0:12422f7c30d3 73 void RTC_Start( void);
clemente 3:2cee0b9ac1ff 74
clemente 3:2cee0b9ac1ff 75 /** Start the module. Setting up the IRQ handler for the second IRQ and/or for the Alarm
clemente 3:2cee0b9ac1ff 76 * @param sec_ptr, alrm_ptr pointer to the IRQ handler
clemente 3:2cee0b9ac1ff 77 * @return none
clemente 3:2cee0b9ac1ff 78 */
clemente 1:2e81444e49a9 79 void RTC_Start( void(*sec_ptr)(void), void(*alrm_ptr)(void));
clemente 3:2cee0b9ac1ff 80
clemente 3:2cee0b9ac1ff 81 /** Return the alarm value
clemente 3:2cee0b9ac1ff 82 * @param none
clemente 3:2cee0b9ac1ff 83 * #return the alarm value
clemente 3:2cee0b9ac1ff 84 */
clemente 0:12422f7c30d3 85 unsigned int RTC_GetAlarm( void);
clemente 3:2cee0b9ac1ff 86
clemente 3:2cee0b9ac1ff 87 /** Configure the alarm value
clemente 3:2cee0b9ac1ff 88 * @param alarm in seconds
clemente 3:2cee0b9ac1ff 89 * @return none
clemente 3:2cee0b9ac1ff 90 */
clemente 2:56a50064749e 91 void RTC_SetAlarm( unsigned int alarm);
clemente 3:2cee0b9ac1ff 92
clemente 3:2cee0b9ac1ff 93 /** Return the second elapsed
clemente 3:2cee0b9ac1ff 94 * @param none
clemente 3:2cee0b9ac1ff 95 * @return the second elapsed
clemente 3:2cee0b9ac1ff 96 */
clemente 0:12422f7c30d3 97 unsigned int RTC_Read( void);
clemente 0:12422f7c30d3 98
clemente 0:12422f7c30d3 99 private:
clemente 0:12422f7c30d3 100
clemente 0:12422f7c30d3 101 static void _RTC_IRQHandler(void);
clemente 0:12422f7c30d3 102 static void _RTC_Seconds_IRQHandler(void);
clemente 0:12422f7c30d3 103
clemente 0:12422f7c30d3 104 };
clemente 0:12422f7c30d3 105
clemente 0:12422f7c30d3 106 #endif