📄 wuxicar.lst
字号:
333 1 /*
334 1 * HSO 5 module initialization:
335 1 * HSO5 output = enabled
336 1 * cam locking = disabled
337 1 * clear cam = no
338 1 */
339 1
34 1 _SetSFR_bit (ioc1, HSO4_PIN_ENABLE);
0277 B10F00 E ldb wsr,#0FH
027A B00000 E ldb tmpreg,ioc1
027D 911000 R orb tmpreg,#1
0280 1101 R clrb tmpreg+1
0282 1100 E clrb wsr
0284 B00000 E ldb ioc1,tmpreg
341 1 _SetSFR_bit (ioc1, HSO5_PIN_ENABLE);
0287 B10F00 E ldb wsr,#0FH
028A B00000 E ldb tmpreg,ioc1
028D 914000 R orb tmpreg,#4
0290 1101 R clrb tmpreg+1
0292 1100 E clrb wsr
0294 B00000 E ldb ioc1,tmpreg
342 1 _ClrSFR_bit (ioc2, CAM_LOCK_BIT);
0297 B10F00 E ldb wsr,#0FH
029A AC0000 E ldbze tmpreg,ioc2
029D 61BFFF00 R and tmpreg,#0FFBFH
02A1 1100 E clrb wsr
02A3 B00000 E ldb ioc2,tmpreg
343 1 _ClrSFR_bit (ioc2, CLEAR_CAM_BIT);
02A6 B10F00 E ldb wsr,#0FH
02A9 AC0000 E ldbze tmpreg,ioc2
02AC 617FFF00 R and tmpreg,#0FF7FH
02B0 1100 E clrb wsr
02B2 B00000 E ldb ioc2,tmpreg
344 1
345 1 /*
346 1 * Interrupts:
347 1 * HSO interrupt = disabled
348 1 * software timer int = disabled
349 1 */
35 1
351 1 _ClrSFR_bit (int_mask, HSO_INT);
C196 Compiler wuxicar 30-May-107 11:11:06 Page 14
Assembly Listing of Object Code
02B5 2000 br @0043
02B7 @0043:
02B7 AC0000 E ldbze tmpreg,int_mask
02BA 61F7FF00 R and tmpreg,#0FFF7H
02BE 2000 br @0044
02C0 @0044:
02C0 B00000 E ldb int_mask,tmpreg
352 1 _ClrSFR_bit (int_mask, SW_TIMER_INT);
02C3 2000 br @0045
02C5 @0045:
02C5 AC0000 E ldbze tmpreg,int_mask
02C8 61DFFF00 R and tmpreg,#0FFDFH
02CC 2000 br @0046
02CE @0046:
02CE B00000 E ldb int_mask,tmpreg
353 1 }
02D1 F0 ret
; Function Statistics for: init_hso1_5
; Code Size : 91 Parameter Count:
; Stack Size: Parameter Size :
; OReg Size : Stack Depth :
354
355 void init_atod_converter(void)
356 {
02D2 init_atod_converter:
357 1 /*
358 1 * A/D conversion configuration:
359 1 * speed = normal
36 1 * interrupt = disabled
361 1 * channel = 0
362 1 * start time = started immediately
363 1 * mode = 10-bit
364 1 */
365 1
366 1 _ClrSFR_bit (ioc2, AD_SPEED);
02D2 B10F00 E ldb wsr,#0FH
02D5 AC0000 E ldbze tmpreg,ioc2
02D8 61EFFF00 R and tmpreg,#0FFEFH
02DC 1100 E clrb wsr
02DE B00000 E ldb ioc2,tmpreg
367 1 _ClrSFR_bit (int_mask, AD_INT);
02E1 2000 br @004A
02E3 @004A:
02E3 AC0000 E ldbze tmpreg,int_mask
02E6 61FDFF00 R and tmpreg,#0FFFDH
02EA 2000 br @004B
02EC @004B:
02EC B00000 E ldb int_mask,tmpreg
368 1 _WriteSFR (ad_command, 0x8);
02EF 1100 E clrb wsr
02F1 B10800 E ldb ad_command,#8
369 1 }
02F4 F0 ret
C196 Compiler wuxicar 30-May-107 11:11:06 Page 15
Assembly Listing of Object Code
; Function Statistics for: init_atod_converter
; Code Size : 35 Parameter Count:
; Stack Size: Parameter Size :
; OReg Size : Stack Depth :
37 /* convert_atod performs an atod conversion and. This routine
371 waits until the atod busy bit is cleared before and after the
372 conversion. Interrupts should be disabled and the ATOD
373 should be initialized prior to calling this routine. */
374
375 unsigned int convert_atod(unsigned char channel)
376 {
02F5 convert_atod:
02F5 C800 R push ?OVRBASE
02F7 B3180400 R ldb channel,4[SP]
377 1 wsr = 0;
02FB 1100 E clrb wsr
02FD 2000 br @004F
02FF @004E:
378 1 while(ATOD_BUSY);
02FF @004F:
02FF 410800001C E and Tmp0,ad_result,#8
0304 881C00 cmp R0,Tmp0
0307 D7F6 bne @004E
379 1 ad_command = channel | GO_NOW | TEN_BIT_MODE;
0309 B0001C R ldb Tmp0,channel
030C 91081C orb Tmp0,#8
030F B01C00 E ldb ad_command,Tmp0
38 1 zero_reg=zero_reg+zero_reg; /* needed for 4 state delay */
0312 640000 E add r0,r0
381 1 zero_reg=zero_reg+zero_reg; /* needed for 4 state delay */
0315 640000 E add r0,r0
0318 2000 br @0052
031A @0051:
382 1 while(ATOD_BUSY);
031A @0052:
031A 410800001C E and Tmp0,ad_result,#8
031F 881C00 cmp R0,Tmp0
0322 D7F6 bne @0051
383 1 return((ad_result >> 6));
0324 A0001C E ld Tmp0,ad_result
0327 08061C shr Tmp0,#6
032A 2000 br @004D
384 1 }
032C @004D:
032C CC00 R pop ?OVRBASE
032E F0 ret
; Function Statistics for: convert_atod
; Code Size : 58 Parameter Count: 1
; Stack Size: Parameter Size : 2
; OReg Size : 1 Stack Depth : 2
385
386 void init_hsi0(void)
387 {
C196 Compiler wuxicar 30-May-107 11:11:06 Page 16
Assembly Listing of Object Code
032F init_hsi0:
388 1 /*
389 1 * HSI 0 module configuration:
39 1 * input capture mode = each positive transition
391 1 * hsi 0 external pin = enabled
392 1 */
393 1 _ClrSFR_bit (hsi_mode, 1);
032F B10F00 E ldb wsr,#0FH
0332 AC0000 E ldbze tmpreg,hsi_mode
0335 61FDFF00 R and tmpreg,#0FFFDH
0339 1100 E clrb wsr
033B B00000 E ldb hsi_mode,tmpreg
394 1 _SetSFR_bit (hsi_mode, 0);
033E B10F00 E ldb wsr,#0FH
0341 B00000 E ldb tmpreg,hsi_mode
0344 910100 R orb tmpreg,#1
0347 1101 R clrb tmpreg+1
0349 1100 E clrb wsr
034B B00000 E ldb hsi_mode,tmpreg
395 1
396 1 _SetSFR_bit (ioc0, HSI0_PIN_ENABLE);
034E B10F00 E ldb wsr,#0FH
0351 B00000 E ldb tmpreg,ioc0
0354 910100 R orb tmpreg,#1
0357 1101 R clrb tmpreg+1
0359 1100 E clrb wsr
035B B00000 E ldb ioc0,tmpreg
397 1
398 1 /*
399 1 * Interrupts
4 1 * sixth fifo int vector = hsi data available
4 1 * hsi 0 pin interrupt = enabled
4 1 * hsi data available int = disabled
4 1 * hsi fifo full int = disabled
4 1 * hsi fifo 4 int = disabled
4 1 */
4 1
4 1 _ClrSFR_bit (ioc1, SELECT_INT_VECTOR);
035E B10F00 E ldb wsr,#0FH
0361 AC0000 E ldbze tmpreg,ioc1
0364 617FFF00 R and tmpreg,#0FF7FH
0368 1100 E clrb wsr
036A B00000 E ldb ioc1,tmpreg
4 1 _ClrSFR_bit (int_mask, 2); /* hsi data available */
036D 2000 br @005D
036F @005D:
036F AC0000 E ldbze tmpreg,int_mask
0372 61FBFF00 R and tmpreg,#0FFFBH
0376 2000 br @005E
0378 @005E:
0378 B00000 E ldb int_mask,tmpreg
4 1 _SetSFR_bit (int_mask, 4); /* hsi0 external interrupt */
037B 2000 br @005F
037D @005F:
037D B00000 E ldb tmpreg,int_mask
0380 911000 R orb tmpreg,#1
C196 Compiler wuxicar 30-May-107 11:11:06 Page 17
Assembly Listing of Object Code
0383 1101 R clrb tmpreg+1
0385 2000 br @006
0387 @006:
0387 B00000 E ldb int_mask,tmpreg
41 1 _AndSFR (int_mask1, ~(HSI_FIFO_FULL_INTMSK + HSI_FIFO_4_INT));
038A 2000 br @0061
038C @0061:
038C AC0000 E ldbze tmpreg,imask1
038F 61BBFF00 R and tmpreg,#0FFBBH
0393 2000 br @0062
0395 @0062:
0395 B00000 E ldb imask1,tmpreg
411 1 }
0398 F0 ret
; Function Statistics for: init_hsi0
; Code Size : 1 Parameter Count:
; Stack Size: Parameter Size :
; OReg Size : Stack Depth :
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -