Delay.c 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. /*---------------------------------------------------------------------------------------------------------*/
  2. /* */
  3. /* Copyright(c) 2016 Nuvoton Technology Corp. All rights reserved. */
  4. /* */
  5. /*---------------------------------------------------------------------------------------------------------*/
  6. //***********************************************************************************************************
  7. // Nuvoton Technoledge Corp.
  8. // Website: http://www.nuvoton.com
  9. // E-Mail : [email protected]
  10. // Date : Apr/21/2016
  11. //***********************************************************************************************************
  12. #include "N76E003.h"
  13. #include "Common.h"
  14. #include "Delay.h"
  15. #include "SFR_Macro.h"
  16. #include "Function_define.h"
  17. bit BIT_TMP;
  18. //-------------------------------------------------------------------------
  19. void Timer0_Delay100us(UINT32 u32CNT)
  20. {
  21. clr_T0M; //T0M=0, Timer0 Clock = Fsys/12
  22. TMOD |= 0x01; //Timer0 is 16-bit mode
  23. set_TR0; //Start Timer0
  24. while (u32CNT != 0)
  25. {
  26. TL0 = LOBYTE(TIMER_DIV12_VALUE_100us); //Find define in "Function_define.h" "TIMER VALUE"
  27. TH0 = HIBYTE(TIMER_DIV12_VALUE_100us);
  28. while (TF0 != 1); //Check Timer0 Time-Out Flag
  29. clr_TF0;
  30. u32CNT --;
  31. }
  32. clr_TR0; //Stop Timer0
  33. }
  34. //------------------------------------------------------------------------------
  35. void Timer0_Delay1ms(UINT32 u32CNT)
  36. {
  37. clr_T0M; //T0M=0, Timer0 Clock = Fsys/12
  38. TMOD |= 0x01; //Timer0 is 16-bit mode
  39. set_TR0; //Start Timer0
  40. while (u32CNT != 0)
  41. {
  42. TL0 = LOBYTE(TIMER_DIV12_VALUE_1ms); //Find define in "Function_define.h" "TIMER VALUE"
  43. TH0 = HIBYTE(TIMER_DIV12_VALUE_1ms);
  44. while (TF0 != 1); //Check Timer0 Time-Out Flag
  45. clr_TF0;
  46. u32CNT --;
  47. }
  48. clr_TR0; //Stop Timer0
  49. }
  50. //------------------------------------------------------------------------------
  51. void Timer1_Delay10ms(UINT32 u32CNT)
  52. {
  53. clr_T1M; //T1M=0, Timer1 Clock = Fsys/12
  54. TMOD |= 0x10; //Timer1 is 16-bit mode
  55. set_TR1; //Start Timer1
  56. while (u32CNT != 0)
  57. {
  58. TL1 = LOBYTE(TIMER_DIV12_VALUE_10ms); //Find define in "Function_define.h" "TIMER VALUE"
  59. TH1 = HIBYTE(TIMER_DIV12_VALUE_10ms);
  60. while (TF1 != 1); //Check Timer1 Time-Out Flag
  61. clr_TF1;
  62. u32CNT --;
  63. }
  64. clr_TR1; //Stop Timer1
  65. }
  66. //------------------------------------------------------------------------------
  67. void Timer2_Delay500us(UINT32 u32CNT)
  68. {
  69. clr_T2DIV2; //Timer2 Clock = Fsys/4
  70. clr_T2DIV1;
  71. set_T2DIV0;
  72. set_TR2; //Start Timer2
  73. while (u32CNT != 0)
  74. {
  75. TL2 = LOBYTE(TIMER_DIV4_VALUE_500us); //Find define in "Function_define.h" "TIMER VALUE"
  76. TH2 = HIBYTE(TIMER_DIV4_VALUE_500us);
  77. while (TF2 != 1); //Check Timer2 Time-Out Flag
  78. clr_TF2;
  79. u32CNT --;
  80. }
  81. clr_TR2; //Stop Timer2
  82. }
  83. //------------------------------------------------------------------------------
  84. void Timer3_Delay100ms(UINT32 u32CNT)
  85. {
  86. T3CON = 0x07; //Timer3 Clock = Fsys/128
  87. set_TR3; //Trigger Timer3
  88. while (u32CNT != 0)
  89. {
  90. RL3 = LOBYTE(TIMER_DIV128_VALUE_100ms); //Find define in "Function_define.h" "TIMER VALUE"
  91. RH3 = HIBYTE(TIMER_DIV128_VALUE_100ms);
  92. while ((T3CON&SET_BIT4) != SET_BIT4); //Check Timer3 Time-Out Flag
  93. clr_TF3;
  94. u32CNT --;
  95. }
  96. clr_TR3; //Stop Timer3
  97. }
  98. //------------------------------------------------------------------------------
  99. void Timer3_Delay10us(UINT32 u32CNT)
  100. {
  101. T3CON = 0x07; //Timer3 Clock = Fsys/128
  102. set_TR3; //Trigger Timer3
  103. while (u32CNT != 0)
  104. {
  105. RL3 = LOBYTE(TIMER_DIV4_VALUE_10us); //Find define in "Function_define.h" "TIMER VALUE"
  106. RH3 = HIBYTE(TIMER_DIV4_VALUE_10us);
  107. while ((T3CON&SET_BIT4) != SET_BIT4); //Check Timer3 Time-Out Flag
  108. clr_TF3;
  109. u32CNT --;
  110. }
  111. clr_TR3; //Stop Timer3
  112. }