[DemoCode下载] ML51定时器中断操作

[复制链接]
 楼主| huahuagg 发表于 2019-8-28 23:55 | 显示全部楼层 |阅读模式
  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /*                                                                                                         */
  3. /* Copyright(c) 2019 Nuvoton Technology Corp. All rights reserved.                                         */
  4. /*                                                                                                         */
  5. /*---------------------------------------------------------------------------------------------------------*/

  6. //***********************************************************************************************************
  7. //  Website: http://www.nuvoton.com
  8. //  E-Mail : MicroC-8bit@nuvoton.com
  9. //***********************************************************************************************************

  10. #include "ML51.h"

  11. /**
  12. * [url=home.php?mod=space&uid=247401]@brief[/url]        Timer delay interrupt demo
  13. * @param       None
  14. * [url=home.php?mod=space&uid=266161]@return[/url]      None
  15. * [url=home.php?mod=space&uid=1543424]@Details[/url]     None
  16. */
  17. /************************************************************************************************************
  18. *    TIMER 0 interrupt subroutine
  19. ************************************************************************************************************/
  20. void Timer0_ISR(void) interrupt 1        // Vector [url=home.php?mod=space&uid=72445]@[/url]  0x0B
  21. {
  22.     clr_TCON_TF0;
  23.     P31 ^= 1;
  24. }
  25. /************************************************************************************************************
  26. *    TIMER 1 interrupt subroutine
  27. ************************************************************************************************************/
  28. void Timer1_ISR(void) interrupt 3        // Vector @  0x1B
  29. {
  30.     clr_TCON_TF1;
  31.     P31 ^= 1;
  32. }
  33. /************************************************************************************************************
  34. *    TIMER 2 interrupt subroutine
  35. ************************************************************************************************************/
  36. void Timer2_ISR(void) interrupt 5        // Vector @  0x2B
  37. {
  38.     clr_T2CON_TF2;
  39.     P31 ^= 1;
  40. }
  41. /************************************************************************************************************
  42. *    TIMER 3 interrupt subroutine
  43. ************************************************************************************************************/
  44. void Timer3_ISR(void) interrupt 16        // Vector @  0x83
  45. {
  46.     clr_T3CON_TF3;
  47.     P31 ^= 1;
  48. }



  49. void main (void)
  50. {
  51.     MFP_P31_GPIO;
  52.     P31_PUSHPULL_MODE;
  53.   
  54.   /* Include timer.c */
  55. /* Timer0 base is HIRC 24MHz(24000000), delay 200ms = (200, 1000) */
  56.       Timer0_Delay(24000000,200,1000);
  57.       set_TCON_TR0;
  58. /* Timer1 base is HIRC 24MHz(24000000), delay 1.8ms = (6, 300) */
  59.       Timer1_Delay(24000000,6,300);
  60.       set_TCON_TR1;
  61. /* Timer1 base is HIRC 24MHz(24000000), devieder 512, delay 1 s = (2, 500000) */
  62.       Timer2_Delay(24000000,512,2,500000);
  63.       set_T2CON_TR2;
  64. /* Timer1 base is HIRC 24MHz(24000000), devieder 128, delay300 ms = (1, 300000) */
  65.       Timer3_Delay(24000000,128,1,300000);
  66.       set_T3CON_TR3;
  67.   
  68.       Timer_Interrupt_Enable(TIMER0);
  69.       Timer_Interrupt_Enable(TIMER1);
  70.       Timer_Interrupt_Enable(TIMER2);
  71.       Timer_Interrupt_Enable(TIMER3);
  72.       ENABLE_GLOBAL_INTERRUPT;
  73.   
  74.       while(1);
  75.       
  76. }





 楼主| huahuagg 发表于 2019-8-28 23:56 | 显示全部楼层
见过这么好用的51吗
yiy 发表于 2019-8-28 23:56 | 显示全部楼层
新的系列,创新很大
zhuotuzi 发表于 2019-8-29 00:02 | 显示全部楼层
这就是典型的模板,可以直接用的。
捉虫天师 发表于 2019-8-29 00:20 | 显示全部楼层
配合定时器图形化工具,更方便。
mintspring 发表于 2019-8-29 00:26 | 显示全部楼层
定时,延时都学会了。
玛尼玛尼哄 发表于 2019-8-29 00:30 | 显示全部楼层
这种操作思路挺好学。
ayb_ice 发表于 2019-8-29 13:27 | 显示全部楼层
真搞不懂
set_T2CON_TR2;

TR2 = 1;
好吗
phosphate 发表于 2019-8-30 15:38 | 显示全部楼层
不错不错!感谢分享
xixi2017 发表于 2019-8-30 16:16 | 显示全部楼层
几个定时器怎么用都提到了,MARK。
dongnanxibei 发表于 2019-8-30 23:59 | 显示全部楼层
中断都可以屏蔽掉吗
杨光光光, 发表于 2021-7-23 14:20 | 显示全部楼层
从来没见过这种操作,太怪异了,看不懂
您需要登录后才可以回帖 登录 | 注册

本版积分规则

159

主题

1408

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部