initial commit of kl25z rtc code. local changes for debug

Dependents:   demo_FRDM_RTC

Fork of KL25Z_RTC by clemente di caprio

KL25Z_RTC.h

Committer:
clemente
Date:
2013-06-19
Revision:
2:56a50064749e
Parent:
1:2e81444e49a9
Child:
3:2cee0b9ac1ff

File content as of revision 2:56a50064749e:

/* Copyright (c) 2010-2011 mbed.org, MIT License
*
* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
* and associated documentation files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all copies or
* substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/

#ifndef __KL25Z_RTC_H
#define __KL25Z_RTC_H

#include "mbed.h"

// Usage:
// #include "mbed.h"
// #include "KL25Z_RTC.h"
// 
// DigitalOut myled(LED1);
// KL25Z_RTC rtc( 15);
// Serial pc(USBTX, USBRX);
// 
// void alm ( void);
// void sec ( void);
// 
// int main() {
//     
//     pc.baud( 230400);
//     pc.printf("RTC Management.\r\n");
// 
//     rtc.RTC_Start( &sec, &alm);
// 
//     while(1) {
//         // pc.printf("RTC [%0d].\r\n", rtc.RTC_Read());
//         wait( 1.0);
//     }
// }
// 
// void sec ( void)
// {
//     pc.printf("sec\r\n");
// }
// 
// void alm ( void)
// {
//     pc.printf("alrm\r\n");
// }    
//


class KL25Z_RTC
{
public:
    KL25Z_RTC( unsigned int alarm);
    void RTC_Start( void);
    void RTC_Start( void(*sec_ptr)(void), void(*alrm_ptr)(void));
    unsigned int RTC_GetAlarm( void);
    void RTC_SetAlarm( unsigned int alarm);
    unsigned int RTC_Read( void);
    void RTC_Seconds_CallBack( void(*fptr)(void));
    
private:
    
    static void _RTC_IRQHandler(void);
    static void _RTC_Seconds_IRQHandler(void);
        
};

#endif