@@ -113,56 +113,56 @@ void ARDUINO_ISR_ATTR __timerISR(void * arg){
113
113
}
114
114
}
115
115
116
- uint64_t IRAM_ATTR timerRead (hw_timer_t * timer ){
116
+ uint64_t timerRead (hw_timer_t * timer ){
117
117
timer -> dev -> update = 1 ;
118
118
uint64_t h = timer -> dev -> cnt_high ;
119
119
uint64_t l = timer -> dev -> cnt_low ;
120
120
return (h << 32 ) | l ;
121
121
}
122
122
123
- uint64_t IRAM_ATTR timerAlarmRead (hw_timer_t * timer ){
123
+ uint64_t timerAlarmRead (hw_timer_t * timer ){
124
124
uint64_t h = timer -> dev -> alarm_high ;
125
125
uint64_t l = timer -> dev -> alarm_low ;
126
126
return (h << 32 ) | l ;
127
127
}
128
128
129
- void IRAM_ATTR timerWrite (hw_timer_t * timer , uint64_t val ){
129
+ void timerWrite (hw_timer_t * timer , uint64_t val ){
130
130
timer -> dev -> load_high = (uint32_t ) (val >> 32 );
131
131
timer -> dev -> load_low = (uint32_t ) (val );
132
132
timer -> dev -> reload = 1 ;
133
133
}
134
134
135
- void IRAM_ATTR timerAlarmWrite (hw_timer_t * timer , uint64_t alarm_value , bool autoreload ){
135
+ void timerAlarmWrite (hw_timer_t * timer , uint64_t alarm_value , bool autoreload ){
136
136
timer -> dev -> alarm_high = (uint32_t ) (alarm_value >> 32 );
137
137
timer -> dev -> alarm_low = (uint32_t ) alarm_value ;
138
138
timer -> dev -> config .autoreload = autoreload ;
139
139
}
140
140
141
- void IRAM_ATTR timerSetConfig (hw_timer_t * timer , uint32_t config ){
141
+ void timerSetConfig (hw_timer_t * timer , uint32_t config ){
142
142
timer -> dev -> config .val = config ;
143
143
}
144
144
145
- uint32_t IRAM_ATTR timerGetConfig (hw_timer_t * timer ){
145
+ uint32_t timerGetConfig (hw_timer_t * timer ){
146
146
return timer -> dev -> config .val ;
147
147
}
148
148
149
- void IRAM_ATTR timerSetCountUp (hw_timer_t * timer , bool countUp ){
149
+ void timerSetCountUp (hw_timer_t * timer , bool countUp ){
150
150
timer -> dev -> config .increase = countUp ;
151
151
}
152
152
153
- bool IRAM_ATTR timerGetCountUp (hw_timer_t * timer ){
153
+ bool timerGetCountUp (hw_timer_t * timer ){
154
154
return timer -> dev -> config .increase ;
155
155
}
156
156
157
- void IRAM_ATTR timerSetAutoReload (hw_timer_t * timer , bool autoreload ){
157
+ void timerSetAutoReload (hw_timer_t * timer , bool autoreload ){
158
158
timer -> dev -> config .autoreload = autoreload ;
159
159
}
160
160
161
- bool IRAM_ATTR timerGetAutoReload (hw_timer_t * timer ){
161
+ bool timerGetAutoReload (hw_timer_t * timer ){
162
162
return timer -> dev -> config .autoreload ;
163
163
}
164
164
165
- void IRAM_ATTR timerSetDivider (hw_timer_t * timer , uint16_t divider ){//2 to 65536
165
+ void timerSetDivider (hw_timer_t * timer , uint16_t divider ){//2 to 65536
166
166
if (!divider ){
167
167
divider = 0xFFFF ;
168
168
} else if (divider == 1 ){
@@ -174,41 +174,41 @@ void IRAM_ATTR timerSetDivider(hw_timer_t *timer, uint16_t divider){//2 to 65536
174
174
timer -> dev -> config .enable = timer_en ;
175
175
}
176
176
177
- uint16_t IRAM_ATTR timerGetDivider (hw_timer_t * timer ){
177
+ uint16_t timerGetDivider (hw_timer_t * timer ){
178
178
return timer -> dev -> config .divider ;
179
179
}
180
180
181
- void IRAM_ATTR timerStart (hw_timer_t * timer ){
181
+ void timerStart (hw_timer_t * timer ){
182
182
timer -> dev -> config .enable = 1 ;
183
183
}
184
184
185
- void IRAM_ATTR timerStop (hw_timer_t * timer ){
185
+ void timerStop (hw_timer_t * timer ){
186
186
timer -> dev -> config .enable = 0 ;
187
187
}
188
188
189
- void IRAM_ATTR timerRestart (hw_timer_t * timer ){
189
+ void timerRestart (hw_timer_t * timer ){
190
190
timer -> dev -> config .enable = 0 ;
191
191
timer -> dev -> reload = 1 ;
192
192
timer -> dev -> config .enable = 1 ;
193
193
}
194
194
195
- bool IRAM_ATTR timerStarted (hw_timer_t * timer ){
195
+ bool timerStarted (hw_timer_t * timer ){
196
196
return timer -> dev -> config .enable ;
197
197
}
198
198
199
- void IRAM_ATTR timerAlarmEnable (hw_timer_t * timer ){
199
+ void timerAlarmEnable (hw_timer_t * timer ){
200
200
timer -> dev -> config .alarm_en = 1 ;
201
201
}
202
202
203
- void IRAM_ATTR timerAlarmDisable (hw_timer_t * timer ){
203
+ void timerAlarmDisable (hw_timer_t * timer ){
204
204
timer -> dev -> config .alarm_en = 0 ;
205
205
}
206
206
207
- bool IRAM_ATTR timerAlarmEnabled (hw_timer_t * timer ){
207
+ bool timerAlarmEnabled (hw_timer_t * timer ){
208
208
return timer -> dev -> config .alarm_en ;
209
209
}
210
210
211
- static void IRAM_ATTR _on_apb_change (void * arg , apb_change_ev_t ev_type , uint32_t old_apb , uint32_t new_apb ){
211
+ static void _on_apb_change (void * arg , apb_change_ev_t ev_type , uint32_t old_apb , uint32_t new_apb ){
212
212
hw_timer_t * timer = (hw_timer_t * )arg ;
213
213
if (ev_type == APB_BEFORE_CHANGE ){
214
214
timer -> dev -> config .enable = 0 ;
@@ -220,7 +220,7 @@ static void IRAM_ATTR _on_apb_change(void * arg, apb_change_ev_t ev_type, uint32
220
220
}
221
221
}
222
222
223
- hw_timer_t * IRAM_ATTR timerBegin (uint8_t num , uint16_t divider , bool countUp ){
223
+ hw_timer_t * timerBegin (uint8_t num , uint16_t divider , bool countUp ){
224
224
if (num > 3 ){
225
225
return NULL ;
226
226
}
@@ -259,13 +259,13 @@ hw_timer_t * IRAM_ATTR timerBegin(uint8_t num, uint16_t divider, bool countUp){
259
259
return timer ;
260
260
}
261
261
262
- void IRAM_ATTR timerEnd (hw_timer_t * timer ){
262
+ void timerEnd (hw_timer_t * timer ){
263
263
timer -> dev -> config .enable = 0 ;
264
264
timerAttachInterrupt (timer , NULL , false);
265
265
removeApbChangeCallback (timer , _on_apb_change );
266
266
}
267
267
268
- void IRAM_ATTR timerAttachInterrupt (hw_timer_t * timer , void (* fn )(void ), bool edge ){
268
+ void timerAttachInterrupt (hw_timer_t * timer , void (* fn )(void ), bool edge ){
269
269
static bool initialized = false;
270
270
static intr_handle_t intr_handle = NULL ;
271
271
if (intr_handle ){
@@ -326,29 +326,29 @@ void IRAM_ATTR timerAttachInterrupt(hw_timer_t *timer, void (*fn)(void), bool ed
326
326
}
327
327
}
328
328
329
- void IRAM_ATTR timerDetachInterrupt (hw_timer_t * timer ){
329
+ void timerDetachInterrupt (hw_timer_t * timer ){
330
330
timerAttachInterrupt (timer , NULL , false);
331
331
}
332
332
333
- uint64_t IRAM_ATTR timerReadMicros (hw_timer_t * timer ){
333
+ uint64_t timerReadMicros (hw_timer_t * timer ){
334
334
uint64_t timer_val = timerRead (timer );
335
335
uint16_t div = timerGetDivider (timer );
336
336
return timer_val * div / (getApbFrequency () / 1000000 );
337
337
}
338
338
339
- double IRAM_ATTR timerReadSeconds (hw_timer_t * timer ){
339
+ double timerReadSeconds (hw_timer_t * timer ){
340
340
uint64_t timer_val = timerRead (timer );
341
341
uint16_t div = timerGetDivider (timer );
342
342
return (double )timer_val * div / getApbFrequency ();
343
343
}
344
344
345
- uint64_t IRAM_ATTR timerAlarmReadMicros (hw_timer_t * timer ){
345
+ uint64_t timerAlarmReadMicros (hw_timer_t * timer ){
346
346
uint64_t timer_val = timerAlarmRead (timer );
347
347
uint16_t div = timerGetDivider (timer );
348
348
return timer_val * div / (getApbFrequency () / 1000000 );
349
349
}
350
350
351
- double IRAM_ATTR timerAlarmReadSeconds (hw_timer_t * timer ){
351
+ double timerAlarmReadSeconds (hw_timer_t * timer ){
352
352
uint64_t timer_val = timerAlarmRead (timer );
353
353
uint16_t div = timerGetDivider (timer );
354
354
return (double )timer_val * div / getApbFrequency ();
0 commit comments