📄 sw_int.ls1
字号:
456 ; }
457 ; SOURCE LINE # 116
00F6 458 ?C0002:
00F6 0500 F 459 INC ?C_IBP
00F8 0500 F 460 INC ?C_IBP
00FA 0500 F 461 INC ?C_IBP
00FC 22 462 RET
463 ; END OF _?OsTaskSwitch
464
465 ;
466 ; void OsIntExit (void) REENTRANT
467
---- 468 RSEG ?PR?_?OsIntExit?SW_INT
0000 469 _?OsIntExit:
470 USING 0
471 ; SOURCE LINE # 118
472 ; {
473 ; EnterCritical();
474 ; SOURCE LINE # 120
0000 C2AF 475 CLR EA
476 ; if (gOs.taskNum>1)
477 ; SOURCE LINE # 121
0002 E500 F 478 MOV A,gOs+01EH
0004 D3 479 SETB C
0005 9401 480 SUBB A,#01H
0007 4010 481 JC ?C0011
482 ; {
483 ; SOURCE LINE # 122
484 ; if (0==gOsMsgIntShed)
485 ; SOURCE LINE # 123
0009 200003 F 486 JB gOsMsgIntShed,?C0012
487 ; { ExitCritical();
488 ; SOURCE LINE # 124
000C D2AF 489 SETB EA
000E 22 490 RET
491 ; return;
492 ; }
493 ; SOURCE LINE # 126
000F 494 ?C0012:
495 ; gOsMsgIntShed = 0;
496 ; SOURCE LINE # 127
000F C200 F 497 CLR gOsMsgIntShed
498 ; if (1==gOsIntLevel)
499 ; SOURCE LINE # 128
0011 E500 F 500 MOV A,gOsIntLevel
0013 B40103 501 CJNE A,#01H,?C0011
502 ; {
503 ; SOURCE LINE # 129
504 ; OsTaskSwitch();
505 ; SOURCE LINE # 130
0016 120000 F 506 LCALL _?OsTaskSwitch
507 ; }
508 ; SOURCE LINE # 131
509 ; }
510 ; SOURCE LINE # 132
0019 511 ?C0011:
512 ; ExitCritical();
513 ; SOURCE LINE # 133
0019 D2AF 514 SETB EA
515 ; }
516 ; SOURCE LINE # 134
001B 517 ?C0013:
001B 22 518 RET
A51 MACRO ASSEMBLER SW_INT 11/24/2006 11:35:22 PAGE 9
519 ; END OF _?OsIntExit
520
521 ;
522 ; void IR_CaptureInt6() //interrupt 6
523
---- 524 RSEG ?PR?IR_CaptureInt6?SW_INT
0000 525 IR_CaptureInt6:
526 USING 0
527 ; SOURCE LINE # 136
528 ; {
529 ; SOURCE LINE # 137
530 ; U16 tmp;
531 ; #pragma asm
532 ; PUSHALL
533 PUSHALL
550 ; #pragma endasm
551 ; gOsIntLevel++;
552 ; SOURCE LINE # 142
001D 0500 F 553 INC gOsIntLevel
554 ; if (CCF1)// PCA module 1 : IR
555 ; SOURCE LINE # 143
001F 30D905 556 JNB CCF1,?C0015
557 ; {
558 ; SOURCE LINE # 144
559 ; CCF1 = 0;
560 ; SOURCE LINE # 145
0022 C2D9 561 CLR CCF1
562 ; IR_Decode();
563 ; SOURCE LINE # 146
0024 120000 F 564 LCALL _?IR_Decode
565 ; }
566 ; SOURCE LINE # 147
0027 567 ?C0015:
568 ; #if 1
569 ; if (CCF0)// PCA module 0 :
570 ; SOURCE LINE # 149
0027 30D81F 571 JNB CCF0,?C0016
572 ; {
573 ; SOURCE LINE # 150
574 ; CCF0 = 0;
575 ; SOURCE LINE # 151
002A C2D8 576 CLR CCF0
577 ; tmp = CCAP0H;
578 ; SOURCE LINE # 152
002C AFFA 579 MOV R7,CCAP0H
580 ;---- Variable 'tmp?240' assigned to Register 'R6/R7' ----
581 ; tmp = (tmp << 8) + CCAP0L;
582 ; SOURCE LINE # 153
002E EF 583 MOV A,R7
002F FE 584 MOV R6,A
0030 ADEA 585 MOV R5,CCAP0L
0032 7C00 586 MOV R4,#00H
0034 E4 587 CLR A
0035 2D 588 ADD A,R5
0036 FF 589 MOV R7,A
0037 EC 590 MOV A,R4
0038 3E 591 ADDC A,R6
0039 FE 592 MOV R6,A
593 ; tmp += SYS_TIME_TICK;
594 ; SOURCE LINE # 154
003A 7428 595 MOV A,#028H
003C 2F 596 ADD A,R7
003D FF 597 MOV R7,A
003E 7402 598 MOV A,#02H
0040 3E 599 ADDC A,R6
0041 FE 600 MOV R6,A
A51 MACRO ASSEMBLER SW_INT 11/24/2006 11:35:22 PAGE 10
601 ; CCAP0L = tmp & 0xff;
602 ; SOURCE LINE # 155
0042 AD07 603 MOV R5,AR7
0044 EF 604 MOV A,R7
0045 F5EA 605 MOV CCAP0L,A
606 ; CCAP0H = tmp >> 8;
607 ; SOURCE LINE # 156
0047 8EFA 608 MOV CCAP0H,R6
609 ; }
610 ; SOURCE LINE # 157
0049 611 ?C0016:
612 ; #endif
613 ; // if (CF) // PCA timer overflow
614 ; // {
615 ; // CF = 0;
616 ; // }
617 ;
618 ; OsIntExit();
619 ; SOURCE LINE # 164
0049 120000 F 620 LCALL _?OsIntExit
621 ; if (gOsIntLevel)
622 ; SOURCE LINE # 165
004C E500 F 623 MOV A,gOsIntLevel
004E 6002 624 JZ ?C0017
625 ; gOsIntLevel--;
626 ; SOURCE LINE # 166
0050 1500 F 627 DEC gOsIntLevel
0052 628 ?C0017:
629 ; #pragma asm
630 ; POPALL
631 POPALL
647 ; RETI
006C 32 648 RETI
649 ; #pragma endasm
650 ; }
651 ; SOURCE LINE # 171
006D 22 652 RET
653 ; END OF IR_CaptureInt6
654
655 ;
656 ;
657 ;
658 ; void SysTimer0 (void)// interrupt 1 //FC66 1ms
659
---- 660 RSEG ?PR?SysTimer0?SW_INT
0000 661 SysTimer0:
662 USING 0
663 ; SOURCE LINE # 175
664 ; {
665 ; SOURCE LINE # 176
666 ; #pragma asm
667 ; PUSHALL
668 PUSHALL
685 ; #pragma endasm
686 ; gOsIntLevel++;
687 ; SOURCE LINE # 180
001D 0500 F 688 INC gOsIntLevel
689 ;
690 ; TH0 =0xFC;
691 ; SOURCE LINE # 182
001F 758CFC 692 MOV TH0,#0FCH
693 ; TL0=0x67;
694 ; SOURCE LINE # 183
0022 758A67 695 MOV TL0,#067H
696 ; TR0=1;
697 ; SOURCE LINE # 184
A51 MACRO ASSEMBLER SW_INT 11/24/2006 11:35:22 PAGE 11
0025 D28C 698 SETB TR0
699 ; sysTimeTick++ ;
700 ; SOURCE LINE # 185
0027 0500 F 701 INC sysTimeTick+01H
0029 E500 F 702 MOV A,sysTimeTick+01H
002B 7002 703 JNZ ?C0030
002D 0500 F 704 INC sysTimeTick
002F 705 ?C0030:
706 ;
707 ; #ifdef OS_DELAY
708 ; OsDealDelay();
709 ; SOURCE LINE # 188
002F 120000 F 710 LCALL _?OsDealDelay
711 ; #endif
712 ;
713 ; sys10ms++;
714 ; SOURCE LINE # 191
0032 0500 F 715 INC sys10ms
716 ; if (10==sys10ms)
717 ; SOURCE LINE # 192
0034 E500 F 718 MOV A,sys10ms
0036 B40A0B 719 CJNE A,#0AH,?C0019
720 ; { sys10ms = 0;
721 ; SOURCE LINE # 193
0039 E4 722 CLR A
003A F500 F 723 MOV sys10ms,A
724 ; #ifdef SET_TIMER
725 ; Timer10msProc();
726 ; SOURCE LINE # 195
003C 120000 F 727 LCALL Timer10msProc
728 ; #endif
729 ; // isNeedTaskSW = 1;
730 ; gOsMsgIntShed = 1;
731 ; SOURCE LINE # 198
003F D200 F 732 SETB gOsMsgIntShed
733 ; OsIntExit();
734 ; SOURCE LINE # 199
0041 120000 F 735 LCALL _?OsIntExit
736 ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -