📄 timers.lst
字号:
207 1 if( TF1 == 0)
208 1 {
209 2 return FALSE;
210 2 }
211 1 else
212 1 {
213 2 StopTmr1();
214 2 return TRUE;
215 2 }
216 1 }
217
218 /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
219 +
220 + FUNCTION NAME: void StartTmr2(uint8 prescaler, UU16 period, bit it_enable)
221 +
222 + DESCRIPTION: start TMR2 in the specified mode
223 +
224 + INPUT: prescaler: TMR2_1, TMR2_12
225 + period: the duration of the timing
226 + it_enable: TRUE - it enables the IT; FALSE - it disables
227 + the IT (status should be polled)
228 +
229 + RETURN:
230 +
231 + NOTES:
232 +
233 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
234 void StartTmr2(uint8 prescaler, UU16 period, bit it_enable)
235 {
236 1 //setup timer
237 1 CKCON = (CKCON & 0xCF) | prescaler;
238 1 TMR2CN = 0x00;
239 1
240 1 //set time period
241 1 period.U16 = 65535 - period.U16;
C51 COMPILER V8.00 TIMERS 11/17/2008 10:50:42 PAGE 5
242 1 TMR2H = period.U8[MSB];
243 1 TMR2L = period.U8[LSB];
244 1 TMR2RLH = period.U8[MSB];
245 1 TMR2RLL = period.U8[LSB];
246 1
247 1 //enable IT if needed
248 1 if( it_enable == TRUE )
249 1 {
250 2 EnableTmr2It();
251 2 }
252 1 else
253 1 {
254 2 DisableTmr2It();
255 2 }
256 1 EnableTmr2();
257 1 }
258
259 /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
260 +
261 + FUNCTION NAME: UU16 GetTmr2(void)
262 +
263 + DESCRIPTION: gives back the actual value of TMR2
264 +
265 + INPUT:
266 +
267 + RETURN:
268 +
269 + NOTES:
270 +
271 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
272 UU16 GetTmr2(void)
273 {
274 1 UU16 Temp16;
275 1
276 1 Temp16.U8[MSB] = TMR2H;
277 1 Temp16.U8[LSB] = TMR2L;
278 1
279 1 return Temp16;
280 1
281 1 }
282
283
284 /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
285 +
286 + FUNCTION NAME: bit Tmr2Expired(void)
287 +
288 + DESCRIPTION: returns with TRUE if TMR2 already expired,
289 + otherwise returns with FALSE
290 +
291 + INPUT: None
292 +
293 + RETURN: TRUE / FALSE
294 +
295 + NOTES: it clears the IT status flag!
296 +
297 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
298 bit Tmr2Expired(void)
299 {
300 1 if( TF2H == 0)
301 1 {
302 2 return FALSE;
303 2 }
C51 COMPILER V8.00 TIMERS 11/17/2008 10:50:42 PAGE 6
304 1 else
305 1 {
306 2 StopTmr2();
307 2 return TRUE;
308 2 }
309 1
310 1 }
311
312
313 /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
314 +
315 + FUNCTION NAME: void StartTmr3(uint8 prescaler, UU16 period, bit it_enable)
316 +
317 + DESCRIPTION: start TMR3 in the specified mode
318 +
319 + INPUT: prescaler: TMR3_1, TMR3_12
320 + period: the duration of the timing
321 + it_enable: TRUE - it enables the IT; FALSE - it disables
322 + the IT (status should be polled)
323 +
324 + RETURN:
325 +
326 + NOTES:
327 +
328 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
329 void StartTmr3(uint8 prescaler, UU16 period, bit it_enable)
330 {
331 1 //setup timer
332 1 CKCON = (CKCON & 0x3F) | prescaler;
333 1 TMR3CN = 0x00;
334 1
335 1 //set time period
336 1 period.U16 = 65535 - period.U16;
337 1 TMR3H = period.U8[MSB];
338 1 TMR3L = period.U8[LSB];
339 1 TMR3RLH = period.U8[MSB];
340 1 TMR3RLL = period.U8[LSB];
341 1
342 1 //enable IT if needed
343 1 if( it_enable == TRUE )
344 1 {
345 2 EnableTmr3It();
346 2 }
347 1 else
348 1 {
349 2 DisableTmr3It();
350 2 }
351 1 EnableTmr3();
352 1 }
353
354 /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
355 +
356 + FUNCTION NAME: UU16 GetTmr3(void)
357 +
358 + DESCRIPTION: gives back the actual value of TMR3
359 +
360 + INPUT:
361 +
362 + RETURN:
363 +
364 + NOTES:
365 +
C51 COMPILER V8.00 TIMERS 11/17/2008 10:50:42 PAGE 7
366 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
367 UU16 GetTmr3(void)
368 {
369 1 UU16 Temp16;
370 1
371 1 Temp16.U8[MSB] = TMR3H;
372 1 Temp16.U8[LSB] = TMR3L;
373 1
374 1 return Temp16;
375 1
376 1 }
377
378
379 /*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
380 +
381 + FUNCTION NAME: bit Tmr3Expired(void)
382 +
383 + DESCRIPTION: returns with TRUE if TMR3 already expired,
384 + otherwise returns with FALSE
385 +
386 + INPUT: None
387 +
388 + RETURN: TRUE / FALSE
389 +
390 + NOTES: it clears the IT status flag!
391 +
392 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
393 bit Tmr3Expired(void)
394 {
395 1 if( (TMR3CN & 0x80) == 0)
396 1 {
397 2 return FALSE;
398 2 }
399 1 else
400 1 {
401 2 StopTmr3();
402 2 return TRUE;
403 2 }
404 1
405 1 }
406
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 300 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 20
IDATA SIZE = ---- ----
BIT SIZE = ---- 4
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -