?? rtc.lst
字號:
ARM COMPILER V2.53, rtc 24/10/06 16:55:18 PAGE 1
ARM COMPILER V2.53, COMPILATION OF MODULE rtc
OBJECT MODULE PLACED IN .\Obj\rtc.obj
COMPILER INVOKED BY: d:\Keil\ARM\BIN\CA.exe rtc.c THUMB INCDIR(..\Common\inc) DEBUG PRINT(.\LST\RTC.LST) TABS(4) OBJECT(
-.\Obj\rtc.obj)
stmt level source
1 /*****************************************************************************
2 * rtc.c: Realtime clock C file for Philips LPC214x Family Microprocessors
3 *
4 * Copyright(C) 2006, Philips Semiconductor
5 * All rights reserved.
6 *
7 * History
8 * 2005.10.01 ver 1.00 Prelimnary version, first Release
9 *
10 *****************************************************************************/
11 #include "LPC214x.H" /* LPC21xx definitions */
12 #include "type.h"
13 #include "irq.h"
14 //#include "timer.h"
15 #include "rtc.h"
16
17 DWORD alarm_on = 0;
18
19 /*****************************************************************************
20 ** Function name: RTCHandler
21 **
22 ** Descriptions: RTC interrupt handler, it executes based on the
23 ** the alarm setting
24 **
25 ** parameters: None
26 ** Returned value: None
27 **
28 *****************************************************************************/
29 void RTCHandler (void) __irq
30 {
31 1 ILR |= ILR_RTCCIF; /* clear interrupt flag */
32 1 IENABLE; /* handles nested interrupt */
33 1
34 1 alarm_on = 1;
35 1
36 1 IDISABLE;
37 1 VICVectAddr = 0; /* Acknowledge Interrupt */
38 1 }
39
40 /*****************************************************************************
41 ** Function name: RTCInit
42 **
43 ** Descriptions: Initialize RTC timer
44 **
45 ** parameters: None
46 ** Returned value: None
47 **
48 *****************************************************************************/
49 void RTCInit( void )
50 {
51 1 alarm_on = 0;
52 1
53 1 /*--- Initialize registers ---*/
54 1 AMR = 0;
55 1 CIIR = 0;
56 1 CCR = 0;
57 1 PREINT = PREINT_RTC;
58 1 PREFRAC = PREFRAC_RTC;
ARM COMPILER V2.53, rtc 24/10/06 16:55:18 PAGE 2
59 1 return;
60 1 }
61
62 /*****************************************************************************
63 ** Function name: RTCStart
64 **
65 ** Descriptions: Start RTC timer
66 **
67 ** parameters: None
68 ** Returned value: None
69 **
70 *****************************************************************************/
71 void RTCStart( void )
72 {
73 1 /*--- Start RTC counters ---*/
74 1 CCR |= CCR_CLKEN;
75 1 ILR = ILR_RTCCIF;
76 1 return;
77 1 }
78
79 /*****************************************************************************
80 ** Function name: RTCStop
81 **
82 ** Descriptions: Stop RTC timer
83 **
84 ** parameters: None
85 ** Returned value: None
86 **
87 *****************************************************************************/
88 void RTCStop( void )
89 {
90 1 /*--- Stop RTC counters ---*/
91 1 CCR &= ~CCR_CLKEN;
92 1 return;
93 1 }
94
95 /*****************************************************************************
96 ** Function name: RTC_CTCReset
97 **
98 ** Descriptions: Reset RTC clock tick counter
99 **
100 ** parameters: None
101 ** Returned value: None
102 **
103 *****************************************************************************/
104 void RTC_CTCReset( void )
105 {
106 1 /*--- Reset CTC ---*/
107 1 CCR |= CCR_CTCRST;
108 1 return;
109 1 }
110
111 /*****************************************************************************
112 ** Function name: RTCSetTime
113 **
114 ** Descriptions: Setup RTC timer value
115 **
116 ** parameters: None
117 ** Returned value: None
118 **
119 *****************************************************************************/
120 void RTCSetTime( RTCTime Time )
121 {
122 1 SEC = Time.RTC_Sec;
123 1 MIN = Time.RTC_Min;
124 1 HOUR = Time.RTC_Hour;
ARM COMPILER V2.53, rtc 24/10/06 16:55:18 PAGE 3
125 1 DOM = Time.RTC_Mday;
126 1 DOW = Time.RTC_Wday;
127 1 DOY = Time.RTC_Yday;
128 1 MONTH = Time.RTC_Mon;
129 1 YEAR = Time.RTC_Year;
130 1 return;
131 1 }
132
133 /*****************************************************************************
134 ** Function name: RTCSetAlarm
135 **
136 ** Descriptions: Initialize RTC timer
137 **
138 ** parameters: None
139 ** Returned value: None
140 **
141 *****************************************************************************/
142 void RTCSetAlarm( RTCTime Alarm )
143 {
144 1 ALSEC = Alarm.RTC_Sec;
145 1 ALMIN = Alarm.RTC_Min;
146 1 ALHOUR = Alarm.RTC_Hour;
147 1 ALDOM = Alarm.RTC_Mday;
148 1 ALDOW = Alarm.RTC_Wday;
149 1 ALDOY = Alarm.RTC_Yday;
150 1 ALMON = Alarm.RTC_Mon;
151 1 ALYEAR = Alarm.RTC_Year;
152 1 return;
153 1 }
154
155 /*****************************************************************************
156 ** Function name: RTCGetTime
157 **
158 ** Descriptions: Get RTC timer value
159 **
160 ** parameters: None
161 ** Returned value: The data structure of the RTC time table
162 **
163 *****************************************************************************/
164 RTCTime RTCGetTime( void )
165 {
166 1 RTCTime LocalTime;
167 1
168 1 LocalTime.RTC_Sec = SEC;
169 1 LocalTime.RTC_Min = MIN;
170 1 LocalTime.RTC_Hour = HOUR;
171 1 LocalTime.RTC_Mday = DOM;
172 1 LocalTime.RTC_Wday = DOW;
173 1 LocalTime.RTC_Yday = DOY;
174 1 LocalTime.RTC_Mon = MONTH;
175 1 LocalTime.RTC_Year = YEAR;
176 1 return LocalTime;
177 1 }
178
179 /*****************************************************************************
180 ** Function name: RTCSetAlarmMask
181 **
182 ** Descriptions: Set RTC timer alarm mask
183 **
184 ** parameters: Alarm mask setting
185 ** Returned value: None
186 **
187 *****************************************************************************/
188 void RTCSetAlarmMask( DWORD AlarmMask )
189 {
190 1 /*--- Set alarm mask ---*/
ARM COMPILER V2.53, rtc 24/10/06 16:55:18 PAGE 4
191 1 AMR = AlarmMask;
192 1 return;
193 1 }
194
195 /*****************************************************************************
196 ** End Of File
197 ******************************************************************************/
198
ARM COMPILER V2.53, rtc 24/10/06 16:55:18 PAGE 5
ASSEMBLY LISTING OF GENERATED OBJECT CODE
*** PUBLICS:
PUBLIC RTCHandler?A
PUBLIC RTCInit?T
PUBLIC RTCStart?T
PUBLIC RTCStop?T
PUBLIC RTC_CTCReset?T
PUBLIC RTCSetTime?T
PUBLIC RTCGetTime?T
PUBLIC RTCSetAlarm?T
PUBLIC RTCSetAlarmMask?T
PUBLIC alarm_on
*** DATA SEGMENT '?DT0?rtc':
00000000 alarm_on:
00000000 BEGIN_INIT
00000000 00000000 DD 0x0
00000004 END_INIT
*** CODE SEGMENT '?PR?RTCHandler?A?rtc':
29: void RTCHandler (void) __irq
00000000 E92D4003 STMDB R13!,{R0-R1,LR}
31: ILR |= ILR_RTCCIF; /* clear interrupt flag */
00000004 E5100000 LDR R0,=0xE0024000
00000008 E5901000 LDR R1,[R0,#0x0]
0000000C E3811001 ORR R1,R1,#0x0001
00000010 E5801000 STR R1,[R0,#0x0]
32: IENABLE; /* handles nested interrupt */
00000014 E14FE000 MRS R14,SPSR
00000018 E92D4000 STMFD R13!,{LR}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -