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

📄 data_log2.asm

📁 TI的digital motor control lib的源代码。了解TI的编程规范
💻 ASM
📖 第 1 页 / 共 2 页
字号:
     					; ARP=AR2, AR0=dlog_iptr1, AR2->task_ptr
;----------------------------------------------------------------------------------
PTS2_1:	                ; ARP=AR2, AR0=dlog_iptr1, AR2->task_ptr      	
;----------------------------------------------------------------------------------
     	SPLK	#POS_TRIG_S1,* ; task_ptr = #POS_TRIG_S1
      					; ARP=AR2, AR0=dlog_iptr1, AR2->task_ptr
;----------------------------------------------------------------------------------
        B		DL_EXIT ; Branch to DL_EXIT
						; ARP=AR2, AR0=dlog_iptr1, AR2->task_ptr
;----------------------------------------------------------------------------------
DL_TRIGGERED:			; ARP=AR2, AR0=dlog_iptr1, AR2->task_ptr      	
;----------------------------------------------------------------------------------
		SBRK	#2		; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_skip_cntr
;----------------------------------------------------------------------------------
        LACC	*		; ACC = dlog_skip_cntr
     					; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_skip_cntr
;----------------------------------------------------------------------------------
       	ADD		#1      ; ACC = dlog_skip_cntr + 1
     					; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_skip_cntr
;----------------------------------------------------------------------------------
     	SACL	*		; dlog_skip_cntr = dlog_skip_cntr + 1
     					; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_skip_cntr
;----------------------------------------------------------------------------------
		ADRK	#3		; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_prescale
;----------------------------------------------------------------------------------
      	SUB		* 		; ACC = dlog_skip_cntr + 1 - dlog_prescale
     					; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_prescale 
;----------------------------------------------------------------------------------
		BCND	DL_EXIT, NEQ ; Branch to DL_EXIT if ACC =! 0
      					; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_prescale
;----------------------------------------------------------------------------------
     	SBRK	#8		; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_iptr1
;----------------------------------------------------------------------------------
; Data is logged here
      	LAR		AR3,*,AR3 ; AR3 = *dlog_iptr1
      					; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_iptr1, ARP=AR3      	
;----------------------------------------------------------------------------------
      	LACC	*,AR2	; ACC = *(*dlog_iptr1) 
      					; ARP=AR3, AR0=dlog_iptr1, AR2->dlog_iptr1, ARP=AR2
;----------------------------------------------------------------------------------
        ADRK	#3		; ARP=AR2, AR0=dlog_iptr1, AR2->graph_ptr1 
;----------------------------------------------------------------------------------
      	LAR		AR3,*,AR3 ; AR3 = *graph_ptr1 
      					; ARP=AR2, AR0=dlog_iptr1, AR2->graph_ptr1, ARP=AR3
;----------------------------------------------------------------------------------
      	SACL	*+,AR2	; *graph_ptr1 = *(*dlog_iptr1) 
      					; ARP=AR5, AR0=dlog_iptr1, AR2->graph_ptr1, ARP=AR2	
;----------------------------------------------------------------------------------
       	SAR		AR3,*	; graph_ptr1 = AR3  (update graph_ptr1)
						; ARP=AR2, AR0=dlog_iptr1, AR2->graph_ptr1
;----------------------------------------------------------------------------------      	
      	SBRK	#2		; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_iptr2
;----------------------------------------------------------------------------------
		LAR		AR3,*,AR3 ; AR3 = *dlog_iptr2 
      					; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_iptr2, ARP=AR3
;----------------------------------------------------------------------------------
    	LACC	*,AR2	; ACC = *(*dlog_iptr2) 
      					; ARP=AR3, AR0=dlog_iptr1, AR2->dlog_iptr2, ARP=AR2
;----------------------------------------------------------------------------------
        ADRK	#3		; ARP=AR2, AR0=dlog_iptr1, AR2->graph_ptr2
;----------------------------------------------------------------------------------
      	LAR		AR3,*,AR3 ; AR3 = *graph_ptr2 
      					; ARP=AR2, AR0=dlog_iptr1, AR2->graph_ptr2, ARP=AR3
;----------------------------------------------------------------------------------
     	SACL	*+,AR2	; *graph_ptr2 = *(*dlog_iptr2) 
      					; ARP=AR5, AR0=dlog_iptr1, AR2->graph_ptr2, ARP=AR2	
;----------------------------------------------------------------------------------
       	SAR		AR3,*+	; graph_ptr2 = AR3  (update graph_ptr2)
						; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_skip_cntr
;----------------------------------------------------------------------------------      	
      	SPLK	#0,*+  	; dlog_skip_cntr  = 0
      					; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_cntr
;----------------------------------------------------------------------------------
		LACC	*		; ACC = dlog_cntr
						; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_cntr		
;----------------------------------------------------------------------------------
      	ADD		#1		; ACC = dlog_cntr + 1
						; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_cntr
;----------------------------------------------------------------------------------
		SACL	*		; dlog_cntr = dlog_cntr + 1
						; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_cntr
;----------------------------------------------------------------------------------
     	ADRK	#3		; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_cntr_max
;----------------------------------------------------------------------------------
		SUB		* 		; ACC = dlog_cntr + 1 - dlog_cntr_max
						; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_cntr_max	
;----------------------------------------------------------------------------------
		BCND	DL_EXIT,NEQ	; Brach to DL_EXIT if ACC =! 0
                       	; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_cntr_max	
;----------------------------------------------------------------------------------
		SBRK	#3		; ARP=AR2, AR0=dlog_iptr1, AR2->dlog_cntr	
;----------------------------------------------------------------------------------
    	SPLK	#0,*+	; dlog_cntr = 0
     					; ARP=AR2, AR0=dlog_iptr1, AR2->task_ptr
;----------------------------------------------------------------------------------
      	SPLK	#POS_TRIG_S1,* ; task_ptr = #POS_TRIG_S1
      					; ARP=AR2, AR0=dlog_iptr1, AR2->task_ptr
;----------------------------------------------------------------------------------
		ADRK	#3		; ARP=AR2, AR0=dlog_iptr1, AR2->dl_buffer1_adr
;----------------------------------------------------------------------------------
		LACC	*		; ACC = dl_buffer1_adr
                        ; ARP=AR2, AR0=dlog_iptr1, AR2->dl_buffer1_adr
;----------------------------------------------------------------------------------
      	SBRK	#7      ; ARP=AR2, AR0=dlog_iptr1, AR2->graph_ptr1            
;----------------------------------------------------------------------------------
    	SACL	*		; graph_ptr1 = dl_buffer1_adr  
    					; ARP=AR2, AR0=dlog_iptr1, AR2->graph_ptr1 
;----------------------------------------------------------------------------------
       	ADRK	#8		; ARP=AR2, AR0=dlog_iptr1, AR2->dl_buffer2_adr 
;----------------------------------------------------------------------------------
    	LACC	*		; ACC = dl_buffer2_adr
    					; ARP=AR2, AR0=dlog_iptr1, AR2->dl_buffer2_adr 
;----------------------------------------------------------------------------------
    	SBRK	#7	    ; ARP=AR2, AR0=dlog_iptr1, AR2->graph_ptr2                
;----------------------------------------------------------------------------------
       	SACL	*		; graph_ptr2 = dl_buffer2_adr  
    					; ARP=AR2, AR0=dlog_iptr1, AR2->graph_ptr2
;----------------------------------------------------------------------------------
DL_EXIT:
;----------------------------------------------------------------------------------
_data_log_update_exit:
       	MAR     *,AR1   ; can be removed if this condition is met on
       	                ; every path to this code. (i.e., ARP=AR1 here)

        CLRC	OVM
        CLRC	SXM

    	SBRK 	#(__data_log_update_framesize+1)
        LAR  	AR0,*-
        PSHD	*
        
        RET



⌨️ 快捷键说明

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