AVR1631 - Energy Meter Reference Design with ATxmega32A4  Rev 1.0
 All Data Structures Files Functions Variables Typedefs Macros
rtc_driver.h File Reference

XMEGA RTC driver header file. More...

#include "avr_compiler.h"

Go to the source code of this file.

Macros

#define RTC_Busy()   ( RTC.STATUS & RTC_SYNCBUSY_bm )
 This macro checks the RTC busy flag.
#define RTC_GetOverflowFlag()   ( RTC.INTFLAGS & RTC_OVFIF_bm )
 This macro returns the status of the RTC overflow flag.
#define RTC_GetCompareFlag()   ( RTC.INTFLAGS & RTC_COMPIF_bm )
 This macro returns the status of the RTC compare flag.
#define RTC_SetCount(_rtccnt)   ( RTC.CNT = (_rtccnt) )
 This macro sets a new RTC count value.
#define RTC_GetCount()   ( RTC.CNT )
 This macro returns the current RTC count value.
#define RTC_SetPeriod(_rtcper)   ( RTC.PER = (_rtcper) )
 This macro sets a new RTC period.
#define RTC_GetPeriod()   ( RTC.PER )
 This macro returns the current RTC period value.
#define RTC_SetCompareValue(_cmpVal)   ( RTC.COMP = (_cmpVal) )
 This macro sets a new RTC compare value.
#define RTC_GetCompareValue()   ( RTC.COMP )
 This macro returns the current RTC compare value.

Functions

void RTC_Initialize (uint16_t period, uint16_t count, uint16_t compareValue, RTC_PRESCALER_t prescaler)
 This function initializes the RTC with period, initial count, compare value and clock prescaler.
void RTC_SetOverflowIntLevel (RTC_OVFINTLVL_t intLevel)
void RTC_SetCompareIntLevel (RTC_COMPINTLVL_t intLevel)
void RTC_SetIntLevels (RTC_OVFINTLVL_t ovfIntLevel, RTC_COMPINTLVL_t compIntLevel)
 This function sets the RTC overflow interrupt level.
void RTC_SetAlarm (uint16_t alarmTimeout)
void RTC_SetPrescaler (RTC_PRESCALER_t prescaler)

Detailed Description

XMEGA RTC driver header file.

 This file contains the function prototypes and enumerator definitions
 for various configuration parameters for the XMEGA RTC driver.

 The driver is not intended for size and/or speed critical code, since
 most functions are just a few lines of code, and the function call
 overhead would decrease code performance. The driver is intended for
 rapid prototyping and documentation purposes for getting started with
 the XMEGA RTC module.

 For size and/or speed critical code, it is recommended to copy the
 function contents directly into your application instead of making
 a function call.
Application note:
AVR1314: Using the XMEGA Real Time Counter
Documentation
For comprehensive code documentation, supported compilers, compiler settings and supported devices see readme.html
Author
Atmel Corporation: http://www.atmel.com
Support email: avr@a.nosp@m.tmel.nosp@m..com
Revision:
1569
Date:
2008-04-22 13:03:43 +0200 (ti, 22 apr 2008)


Copyright (c) 2008, Atmel Corporation All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  1. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  1. The name of ATMEL may not be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Definition in file rtc_driver.h.

Macro Definition Documentation

#define RTC_Busy ( )    ( RTC.STATUS & RTC_SYNCBUSY_bm )

This macro checks the RTC busy flag.

Returns
Non-Zero if RTC is busy, zero otherwise.

Definition at line 70 of file rtc_driver.h.

#define RTC_GetCompareFlag ( )    ( RTC.INTFLAGS & RTC_COMPIF_bm )

This macro returns the status of the RTC compare flag.

Returns
Non-Zero if an RTC compare has occured, zero otherwise.

Definition at line 82 of file rtc_driver.h.

#define RTC_GetCompareValue ( )    ( RTC.COMP )

This macro returns the current RTC compare value.

This is the compare value of the RTC, which will be compared to the count sequence. The compare value must be less than the RTC period.

Returns
The current compare value.

Definition at line 141 of file rtc_driver.h.

#define RTC_GetCount ( )    ( RTC.CNT )

This macro returns the current RTC count value.

This is the count value of the RTC, which will count up to the RTC period.

Returns
The current RTC count value.

Definition at line 101 of file rtc_driver.h.

#define RTC_GetOverflowFlag ( )    ( RTC.INTFLAGS & RTC_OVFIF_bm )

This macro returns the status of the RTC overflow flag.

Returns
Non-Zero if overflow has occured, zero otherwise.

Definition at line 76 of file rtc_driver.h.

#define RTC_GetPeriod ( )    ( RTC.PER )

This macro returns the current RTC period value.

This is the period value of the RTC, which is the top of the count sequence.

Returns
The current RTC period value.

Definition at line 120 of file rtc_driver.h.

#define RTC_SetCompareValue (   _cmpVal)    ( RTC.COMP = (_cmpVal) )

This macro sets a new RTC compare value.

This is the compare value of the RTC, which will be compared to the count sequence. The compare value must be less than the RTC period.

Note
The program code needs to check if the RTC is busy before calling this function. The RTC_Busy() function can be used to do this.
Parameters
_cmpValThe new compare value.

Definition at line 132 of file rtc_driver.h.

#define RTC_SetCount (   _rtccnt)    ( RTC.CNT = (_rtccnt) )

This macro sets a new RTC count value.

This is the count value of the RTC, which will count up to the RTC period.

Note
The program code needs to check if the RTC is busy before calling this function. The RTC_Busy() function can be used to do this.
Parameters
_rtccntThe new count value.

Definition at line 93 of file rtc_driver.h.

#define RTC_SetPeriod (   _rtcper)    ( RTC.PER = (_rtcper) )

This macro sets a new RTC period.

This is the period value of the RTC, which is the top of the count sequence.

Note
The program code needs to check if the RTC is busy before calling this function. The RTC_Busy() function can be used to do this.
Parameters
_rtcperThe new RTC period.

Definition at line 112 of file rtc_driver.h.

Function Documentation

void RTC_Initialize ( uint16_t  period,
uint16_t  count,
uint16_t  compareValue,
RTC_PRESCALER_t  prescaler 
)

This function initializes the RTC with period, initial count, compare value and clock prescaler.

All the synchronized registers are written at the same time to save time. The program code need to check if the RTC is busy before calling this function. The RTC_Busy() function can be used to do this.

Parameters
periodRTC period. Topvalue = Period - 1.
countInitial RTC count.
compareValueCompare value.
prescalerClock prescaler setting.

Definition at line 75 of file rtc_driver.c.

void RTC_SetIntLevels ( RTC_OVFINTLVL_t  ovfIntLevel,
RTC_COMPINTLVL_t  compIntLevel 
)

This function sets the RTC overflow interrupt level.

Parameters
intLevelThe overflow interrupt level.

This function sets the RTC compare interrupt level.

Parameters
intLevelThe compare interrupt level.

This function sets both compare and overflow interrupt levels in one go.

Parameters
ovfIntLevelThe overflow interrupt level.
compIntLevelThe compare interrupt level.

Definition at line 113 of file rtc_driver.c.