Delay.s43
上传用户:xhjmsc
上传日期:2019-09-13
资源大小:389k
文件大小:6k
源码类别:

传真(Fax)编程

开发平台:

C/C++

  1.         NAME Delay
  2.         RTMODEL "__double_size", "32"
  3.         RTMODEL "__pic", "no"
  4.         RTMODEL "__reg_r4", "free"
  5.         RTMODEL "__reg_r5", "free"
  6.         RTMODEL "__rt_version", "1"
  7.         RSEG CSTACK:DATA:SORT:NOROOT(1)
  8.         EXTERN ?longjmp_r4
  9.         EXTERN ?longjmp_r5
  10.         EXTERN ?setjmp_r4
  11.         EXTERN ?setjmp_r5
  12.         PUBWEAK ?setjmp_save_r4
  13.         PUBWEAK ?setjmp_save_r5
  14.         PUBLIC ATcmdDelay
  15.         FUNCTION ATcmdDelay,0203H
  16.         LOCFRAME CSTACK, 2, STACK
  17.         PUBLIC Delay1500ms
  18.         FUNCTION Delay1500ms,021203H
  19.         LOCFRAME CSTACK, 4, STACK
  20.         PUBLIC Delay2000ms
  21.         FUNCTION Delay2000ms,021203H
  22.         LOCFRAME CSTACK, 4, STACK
  23.         PUBLIC delay1us
  24.         FUNCTION delay1us,0203H
  25.         LOCFRAME CSTACK, 2, STACK
  26.         PUBLIC delay800ms
  27.         FUNCTION delay800ms,0203H
  28.         LOCFRAME CSTACK, 2, STACK
  29.         
  30.         CFI Names cfiNames0
  31.         CFI StackFrame CFA SP DATA
  32.         CFI Resource PC:16, SP:16, SR:16, R4:16, R5:16, R6:16, R7:16, R8:16
  33.         CFI Resource R9:16, R10:16, R11:16, R12:16, R13:16, R14:16, R15:16
  34.         CFI EndNames cfiNames0
  35.         
  36.         CFI Common cfiCommon0 Using cfiNames0
  37.         CFI CodeAlign 2
  38.         CFI DataAlign 2
  39.         CFI ReturnAddress PC CODE
  40.         CFI CFA SP+2
  41.         CFI PC Frame(CFA, -2)
  42.         CFI SR Undefined
  43.         CFI R4 SameValue
  44.         CFI R5 SameValue
  45.         CFI R6 SameValue
  46.         CFI R7 SameValue
  47.         CFI R8 SameValue
  48.         CFI R9 SameValue
  49.         CFI R10 SameValue
  50.         CFI R11 SameValue
  51.         CFI R12 Undefined
  52.         CFI R13 Undefined
  53.         CFI R14 Undefined
  54.         CFI R15 Undefined
  55.         CFI EndCommon cfiCommon0
  56.         
  57. // E:projectFaxProgramVson_Bryan_Fax_Conexant_070423filesDelay.c
  58. //    1 /************************************************
  59. //    2 Delay subroutine
  60. //    3 Copyright 2006 by Vson. All rights reserved.
  61. //    4 Author:      Bryan Cai
  62. //    5 Date:        2006.12.21
  63. //    6 Description: soft delay
  64. //    7 Note:
  65. //    8 Identifier abbreviation: 
  66. //    9                          c-const
  67. //   10                          a-array
  68. //   11                          p-pointer
  69. //   12                          g-global
  70. //   13                          uc-unsigned char
  71. //   14                          w-unsigned int
  72. //   15                          cnt-count
  73. //   16                          pnt-point
  74. //   17 Update:
  75. //   18       2006.12.21  Bryan      program header
  76. //   19 ************************************************/
  77. //   20 
  78. //   21 #include "includeH.h"
  79. //   22 
  80.         RSEG CODE:CODE:NOROOT(1)
  81. //   23 void Delay1500ms(void)
  82. Delay1500ms:
  83.         CFI Block cfiBlock0 Using cfiCommon0
  84.         CFI Function Delay1500ms
  85. //   24 {     
  86.         FUNCALL Delay1500ms, ATcmdDelay
  87.         LOCFRAME CSTACK, 4, STACK
  88. PUSH.W R10
  89.         CFI R10 Frame(CFA, -4)
  90.         CFI CFA SP+4
  91. //   25       unsigned char ucGeneralCount;
  92. //   26       for (ucGeneralCount=0; ucGeneralCount<30; ucGeneralCount++)// delay 1.5S minimun 1 second
  93. MOV.B #0x0, R10
  94. ??Delay1500ms_0:
  95. CMP.B #0x1e, R10
  96. JC ??Delay1500ms_1
  97. //   27       {
  98. //   28          ATcmdDelay();  //50ms
  99. CALL #ATcmdDelay
  100. //   29       }
  101. ADD.B #0x1, R10
  102. JMP ??Delay1500ms_0
  103. //   30 }
  104. ??Delay1500ms_1:
  105. POP.W R10
  106.         CFI R10 SameValue
  107.         CFI CFA SP+2
  108. RET
  109.         CFI EndBlock cfiBlock0
  110. //   31 
  111.         RSEG CODE:CODE:NOROOT(1)
  112. //   32 void Delay2000ms(void)
  113. Delay2000ms:
  114.         CFI Block cfiBlock1 Using cfiCommon0
  115.         CFI Function Delay2000ms
  116. //   33 {     
  117.         FUNCALL Delay2000ms, ATcmdDelay
  118.         LOCFRAME CSTACK, 4, STACK
  119. PUSH.W R10
  120.         CFI R10 Frame(CFA, -4)
  121.         CFI CFA SP+4
  122. //   34       unsigned char ucGeneralCount;
  123. //   35       for (ucGeneralCount=0; ucGeneralCount<40; ucGeneralCount++)// delay 1.5S minimun 1 second
  124. MOV.B #0x0, R10
  125. ??Delay2000ms_0:
  126. CMP.B #0x28, R10
  127. JC ??Delay2000ms_1
  128. //   36       {
  129. //   37          ATcmdDelay();  //50ms
  130. CALL #ATcmdDelay
  131. //   38       }
  132. ADD.B #0x1, R10
  133. JMP ??Delay2000ms_0
  134. //   39 }
  135. ??Delay2000ms_1:
  136. POP.W R10
  137.         CFI R10 SameValue
  138.         CFI CFA SP+2
  139. RET
  140.         CFI EndBlock cfiBlock1
  141. //   40 
  142.         RSEG CODE:CODE:NOROOT(1)
  143. //   41 void ATcmdDelay(void)//delay 50ms
  144. ATcmdDelay:
  145.         CFI Block cfiBlock2 Using cfiCommon0
  146.         CFI Function ATcmdDelay
  147. //   42 { 
  148. //   43   unsigned int DelayCnt=0;
  149. MOV.W #0x0, R14
  150. //   44   for(DelayCnt = 0;DelayCnt < 0xbfff;DelayCnt++)//0xbfff
  151. MOV.W #0x0, R14
  152. ??ATcmdDelay_0:
  153. CMP.W #0xbfff, R14
  154. JC ??ATcmdDelay_1
  155. //   45   _NOP();
  156. NOP
  157. ADD.W #0x1, R14
  158. JMP ??ATcmdDelay_0
  159. //   46 }
  160. ??ATcmdDelay_1:
  161. RET
  162.         CFI EndBlock cfiBlock2
  163.         RSEG CODE:CODE:NOROOT(1)
  164. //   47 void delay800ms(void)//delay 8000ms
  165. delay800ms:
  166.         CFI Block cfiBlock3 Using cfiCommon0
  167.         CFI Function delay800ms
  168. //   48 { 
  169. //   49   unsigned int DelayCnt=0;
  170. MOV.W #0x0, R14
  171. //   50   for(DelayCnt=0;DelayCnt<0xffff;DelayCnt++)
  172. MOV.W #0x0, R14
  173. ??delay800ms_0:
  174. CMP.W #0xffff, R14
  175. JEQ ??delay800ms_1
  176. //   51   _NOP();
  177. NOP
  178. ADD.W #0x1, R14
  179. JMP ??delay800ms_0
  180. //   52 } 
  181. ??delay800ms_1:
  182. RET
  183.         CFI EndBlock cfiBlock3
  184. //   53 
  185.         RSEG CODE:CODE:NOROOT(1)
  186. //   54 void delay1us(unsigned int wDelayNum)//delay 1us
  187. delay1us:
  188.         CFI Block cfiBlock4 Using cfiCommon0
  189.         CFI Function delay1us
  190. //   55 { 
  191. //   56   unsigned int wGeneralCount=0;
  192. MOV.W #0x0, R14
  193. //   57   wDelayNum=wDelayNum-1;
  194. ADD.W #0xffff, R12
  195. //   58   for (wGeneralCount=0;wGeneralCount<wDelayNum;wGeneralCount++)
  196. MOV.W #0x0, R14
  197. ??delay1us_0:
  198. CMP.W R12, R14
  199. JC ??delay1us_1
  200. //   59   {
  201. //   60      __no_operation();
  202. NOP
  203. //   61   }
  204. ADD.W #0x1, R14
  205. JMP ??delay1us_0
  206. //   62 } 
  207. ??delay1us_1:
  208. RET
  209.         CFI EndBlock cfiBlock4
  210.         RSEG CODE:CODE:NOROOT(1)
  211. ?setjmp_save_r4:
  212. REQUIRE ?setjmp_r4
  213. REQUIRE ?longjmp_r4
  214.         RSEG CODE:CODE:NOROOT(1)
  215. ?setjmp_save_r5:
  216. REQUIRE ?setjmp_r5
  217. REQUIRE ?longjmp_r5
  218.         END
  219. // 
  220. // 96 bytes in segment CODE
  221. // 
  222. // 96 bytes of CODE memory
  223. //
  224. //Errors: none
  225. //Warnings: none