7 #ifndef __MSP430WARE_RTC_C_H__
8 #define __MSP430WARE_RTC_C_H__
12 #if defined(__MSP430_HAS_RTC_C__) || defined(__MSP430_HAS_RTC_CE__)
32 typedef struct Calendar {
55 typedef struct RTC_C_configureCalendarAlarmParam {
67 uint8_t dayOfWeekAlarm;
71 uint8_t dayOfMonthAlarm;
72 } RTC_C_configureCalendarAlarmParam;
81 #define RTC_C_CALIBRATIONFREQ_OFF (RTCCALF_0)
82 #define RTC_C_CALIBRATIONFREQ_512HZ (RTCCALF_1)
83 #define RTC_C_CALIBRATIONFREQ_256HZ (RTCCALF_2)
84 #define RTC_C_CALIBRATIONFREQ_1HZ (RTCCALF_3)
92 #define RTC_C_CALIBRATION_DOWN1PPM (!(RTCCALS))
93 #define RTC_C_CALIBRATION_UP1PPM (RTCCALS)
101 #define RTC_C_COMPENSATION_DOWN1PPM (!(RTCTCMPS))
102 #define RTC_C_COMPENSATION_UP1PPM (RTCTCMPS)
110 #define RTC_C_CLOCKSELECT_32KHZ_OSC (RTCSSEL_0)
111 #define RTC_C_CLOCKSELECT_RT1PS (RTCSSEL_2)
119 #define RTC_C_COUNTERSIZE_8BIT (RTCTEV_0)
120 #define RTC_C_COUNTERSIZE_16BIT (RTCTEV_1)
121 #define RTC_C_COUNTERSIZE_24BIT (RTCTEV_2)
122 #define RTC_C_COUNTERSIZE_32BIT (RTCTEV_3)
130 #define RTC_C_FORMAT_BINARY (!(RTCBCD))
131 #define RTC_C_FORMAT_BCD (RTCBCD)
140 #define RTC_C_ALARMCONDITION_OFF (0x80)
148 #define RTC_C_CALENDAREVENT_MINUTECHANGE (RTCTEV_0)
149 #define RTC_C_CALENDAREVENT_HOURCHANGE (RTCTEV_1)
150 #define RTC_C_CALENDAREVENT_NOON (RTCTEV_2)
151 #define RTC_C_CALENDAREVENT_MIDNIGHT (RTCTEV_3)
159 #define RTC_C_PSDIVIDER_2 (RT0PSDIV_0)
160 #define RTC_C_PSDIVIDER_4 (RT0PSDIV_1)
161 #define RTC_C_PSDIVIDER_8 (RT0PSDIV_2)
162 #define RTC_C_PSDIVIDER_16 (RT0PSDIV_3)
163 #define RTC_C_PSDIVIDER_32 (RT0PSDIV_4)
164 #define RTC_C_PSDIVIDER_64 (RT0PSDIV_5)
165 #define RTC_C_PSDIVIDER_128 (RT0PSDIV_6)
166 #define RTC_C_PSDIVIDER_256 (RT0PSDIV_7)
174 #define RTC_C_PSCLOCKSELECT_ACLK (RT1SSEL_0)
175 #define RTC_C_PSCLOCKSELECT_SMCLK (RT1SSEL_1)
176 #define RTC_C_PSCLOCKSELECT_RT0PS (RT1SSEL_2)
184 #define RTC_C_PSEVENTDIVIDER_2 (RT0IP_0)
185 #define RTC_C_PSEVENTDIVIDER_4 (RT0IP_1)
186 #define RTC_C_PSEVENTDIVIDER_8 (RT0IP_2)
187 #define RTC_C_PSEVENTDIVIDER_16 (RT0IP_3)
188 #define RTC_C_PSEVENTDIVIDER_32 (RT0IP_4)
189 #define RTC_C_PSEVENTDIVIDER_64 (RT0IP_5)
190 #define RTC_C_PSEVENTDIVIDER_128 (RT0IP_6)
191 #define RTC_C_PSEVENTDIVIDER_256 (RT0IP_7)
201 #define RTC_C_PRESCALE_0 (0x0)
202 #define RTC_C_PRESCALE_1 (0x2)
213 #define RTC_C_TIME_EVENT_INTERRUPT RTCTEVIE
214 #define RTC_C_CLOCK_ALARM_INTERRUPT RTCAIE
215 #define RTC_C_CLOCK_READ_READY_INTERRUPT RTCRDYIE
216 #define RTC_C_PRESCALE_TIMER0_INTERRUPT 0x02
217 #define RTC_C_PRESCALE_TIMER1_INTERRUPT 0x01
218 #define RTC_C_OSCILLATOR_FAULT_INTERRUPT RTCOFIE
237 extern void RTC_C_startClock(uint16_t baseAddress);
250 extern void RTC_C_holdClock(uint16_t baseAddress);
276 extern void RTC_C_setCalibrationFrequency(uint16_t baseAddress,
277 uint16_t frequencySelect);
302 extern void RTC_C_setCalibrationData(uint16_t baseAddress,
303 uint8_t offsetDirection,
304 uint8_t offsetValue);
331 extern void RTC_C_initCounter(uint16_t baseAddress,
332 uint16_t clockSelect,
333 uint16_t counterSizeSelect);
358 extern bool RTC_C_setTemperatureCompensation(uint16_t baseAddress,
359 uint16_t offsetDirection,
360 uint8_t offsetValue);
390 extern void RTC_C_initCalendar(uint16_t baseAddress,
391 Calendar *CalendarTime,
392 uint16_t formatSelect);
408 extern Calendar RTC_C_getCalendarTime(uint16_t baseAddress);
427 extern void RTC_C_configureCalendarAlarm(uint16_t baseAddress,
428 RTC_C_configureCalendarAlarmParam *
param);
450 extern void RTC_C_setCalendarEvent(uint16_t baseAddress,
451 uint16_t eventSelect);
466 extern uint32_t RTC_C_getCounterValue(uint16_t baseAddress);
481 extern void RTC_C_setCounterValue(uint16_t baseAddress,
482 uint32_t counterValue);
521 extern void RTC_C_initCounterPrescale(uint16_t baseAddress,
522 uint8_t prescaleSelect,
523 uint16_t prescaleClockSelect,
524 uint16_t prescaleDivider);
545 extern void RTC_C_holdCounterPrescale(uint16_t baseAddress,
546 uint8_t prescaleSelect);
564 extern void RTC_C_startCounterPrescale(uint16_t baseAddress,
565 uint8_t prescaleSelect);
596 extern void RTC_C_definePrescaleEvent(uint16_t baseAddress,
597 uint8_t prescaleSelect,
598 uint8_t prescaleEventDivider);
617 extern uint8_t RTC_C_getPrescaleValue(uint16_t baseAddress,
618 uint8_t prescaleSelect);
639 extern void RTC_C_setPrescaleValue(uint16_t baseAddress,
640 uint8_t prescaleSelect,
641 uint8_t prescaleCounterValue);
671 extern void RTC_C_enableInterrupt(uint16_t baseAddress,
672 uint8_t interruptMask);
702 extern void RTC_C_disableInterrupt(uint16_t baseAddress,
703 uint8_t interruptMask);
747 extern uint8_t RTC_C_getInterruptStatus(uint16_t baseAddress,
748 uint8_t interruptFlagMask);
778 extern void RTC_C_clearInterrupt(uint16_t baseAddress,
779 uint8_t interruptFlagMask);
795 extern uint16_t RTC_C_convertBCDToBinary(uint16_t baseAddress,
796 uint16_t valueToConvert);
812 extern uint16_t RTC_C_convertBinaryToBCD(uint16_t baseAddress,
813 uint16_t valueToConvert);
MPU_initThreeSegmentsParam param