⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcanapif.mac

📁 Philips sja1000 can controller. it contains example on how to control this device
💻 MAC
字号:
;-----------------------------------------------------------------------
;
;  Definition der im Modul PCANAPIF.A51 ben攖igten Macros
;
;  Th. Fischler, 1.11.1990
;
;-----------------------------------------------------------------------


XCHR            MACRO   REG1, REG2
;; vertauscht den Inhalt von REG2 mit REG1 via A
                   MOV  A, REG2
                   XCH  A, REG1
                   MOV  REG2, A
                ENDM


; Das folgende Macro sichert die Register R3 bis R7 in den XDATA-Bereich
; ab X_ADR (INPAGE alloziert)
STORE_REGS     MACRO  X_ADR
                  MOV DPTR,#X_ADR
                  MOV A,R3
                  MOVX @DPTR,A
                  INC DPL
                  MOV A,R4
                  MOVX @DPTR,A
                  INC DPL
                  MOV A,R5
                  MOVX @DPTR,A
                  INC DPL
                  MOV A,R6
                  MOVX @DPTR,A
                  INC DPL
                  MOV A,R7
                  MOVX @DPTR,A
               ENDM


; Das folgende Macro holt die Daten ab X_ADR zur乧k in die Register
; R3 bis R7 (Inpage alloziert)
RESTORE_REGS   MACRO  X_ADR
                  MOV DPTR,#X_ADR
                  MOVX A,@DPTR
                  MOV R3,A
                  INC DPL
                  MOVX A,@DPTR
                  MOV R4,A
                  INC DPL
                  MOVX A,@DPTR
                  MOV R5,A
                  INC DPL
                  MOVX A,@DPTR
                  MOV R6,A
                  INC DPL
                  MOVX A,@DPTR
                  MOV R7,A
               ENDM


; Das folgende Macro setzt den C_ORDER_BUF (Inpage alloziert)
; f乺 die Befehls乥ergabe an den CAN-Task auf.
; ORDER ist der zu 乥ergebende Befehl, MAX_REG ist das gr攕ste R-Register,
; dass 乥ergeben werden muss :
; --> MAX_REG = 5, es werden R3, R4 und R5 乥ergeben
; --> MAX_REG = 0, es werden keine Register 乥ergeben
SETUP_ORDER    MACRO  ORDER, MAX_REG
                  MOV     DPTR, #C_ORDER_BUF_ORDER
                  MOV     A, #ORDER
                  MOVX    @DPTR, A
                  INC     DPL
                  IF MAX_REG = 0
                     CALL    os_running_task_id
                     MOV     DPTR, #C_ORDER_BUF_ORDER+1
                     MOV     A, R7
                     MOVX    @DPTR, A
                     EXITM
                  ENDIF
                  INC     DPL
                  MOV     A, R3
                  MOVX    @DPTR, A
                  IF MAX_REG = 1
                     CALL    os_running_task_id
                     MOV     DPTR, #C_ORDER_BUF_ORDER+1
                     MOV     A, R7
                     MOVX    @DPTR, A
                     EXITM
                  ENDIF
                  INC     DPL
                  MOV     A, R4
                  MOVX    @DPTR, A
                  IF MAX_REG = 2
                     CALL    os_running_task_id
                     MOV     DPTR, #C_ORDER_BUF_ORDER+1
                     MOV     A, R7
                     MOVX    @DPTR, A
                     EXITM
                  ENDIF
                  INC     DPL
                  MOV     A, R5
                  MOVX    @DPTR, A
                  IF MAX_REG = 3
                     CALL    os_running_task_id
                     MOV     DPTR, #C_ORDER_BUF_ORDER+1
                     MOV     A, R7
                     MOVX    @DPTR, A
                     EXITM
                  ENDIF
                  INC     DPL
                  MOV     A, R6
                  MOVX    @DPTR, A
                  IF MAX_REG = 4
                     CALL    os_running_task_id
                     MOV     DPTR, #C_ORDER_BUF_ORDER+1
                     MOV     A, R7
                     MOVX    @DPTR, A
                     EXITM
                  ENDIF
                  INC     DPL
                  MOV     A, R7
                  MOVX    @DPTR, A
                  CALL    os_running_task_id
                  MOV     DPTR, #C_ORDER_BUF_ORDER+1
                  MOV     A, R7
                  MOVX    @DPTR, A
               ENDM

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -