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

📄 dsp28_ev.asm

📁 使用芯片为TI公司的DSP2812。该程序用以完成对直流电机的控制
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;***************************************************************
;* TMS320C2000 C/C++ Codegen                   PC Version 3.09 *
;* Date/Time created: Sun Jun 11 10:19:20 2006                 *
;***************************************************************
FP	.set	XAR2
	.file	"DSP28_Ev.c"
;	C:\ti\c2000\cgtools\bin\ac2000.exe -@C:\DOCUME~1\XN79A6~1.UPC\LOCALS~1\Temp\TI5888_4 

	.sect	".text"
	.global	_InitEv
	.sym	_InitEv,_InitEv, 32, 2, 0
	.func	31
;----------------------------------------------------------------------
;  31 | void InitEv(void)                                                      
;----------------------------------------------------------------------

;***************************************************************
;* FNAME: _InitEv                       FR SIZE:   0           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            0 Parameter,  0 Auto,  0 SOE     *
;***************************************************************

_InitEv:
	.line	2
;----------------------------------------------------------------------
;  35 | #ifdef PWM                                                             
;----------------------------------------------------------------------
	.line	7
;----------------------------------------------------------------------
;  37 | EvaRegs.ACTR.all = 0x0555;                                             
;----------------------------------------------------------------------
        MOVW      DP,#_EvaRegs+19
        MOV       @_EvaRegs+19,#1365    ; |37| 
	.line	8
;----------------------------------------------------------------------
;  38 | EvaRegs.CMPR1 = 0x0;                                                   
;----------------------------------------------------------------------
        MOV       @_EvaRegs+23,#0       ; |38| 
	.line	9
;----------------------------------------------------------------------
;  39 | EvaRegs.CMPR2 = 0x0;                                                   
;----------------------------------------------------------------------
        MOV       @_EvaRegs+24,#0       ; |39| 
	.line	10
;----------------------------------------------------------------------
;  40 | EvaRegs.CMPR3 = 0x0;                                                   
;----------------------------------------------------------------------
        MOV       @_EvaRegs+25,#0       ; |40| 
	.line	11
;----------------------------------------------------------------------
;  41 | EvaRegs.COMCONA.all = 0x8200;                                          
;  42 | #endif                                                                 
;----------------------------------------------------------------------
        MOV       @_EvaRegs+17,#33280   ; |41| 
	.line	14
;----------------------------------------------------------------------
;  44 | EvaRegs.T1CNT = 0;                                                     
;----------------------------------------------------------------------
        MOV       @_EvaRegs+1,#0        ; |44| 
	.line	15
;----------------------------------------------------------------------
;  45 | EvaRegs.T1PR = HISPCLK_FREQ/PWM_FREQ-1;                                
;----------------------------------------------------------------------
        MOV       @_EvaRegs+3,#37499    ; |45| 
	.line	16
;----------------------------------------------------------------------
;  46 | EvaRegs.T1CON.all = 0x1040;                                            
;----------------------------------------------------------------------
        MOV       @_EvaRegs+4,#4160     ; |46| 
	.line	19
        LRETR
        ; return occurs
	.endfunc	49,000000000h,0



	.sect	".text"
	.global	_SetPWMFreq
	.sym	_SetPWMFreq,_SetPWMFreq, 32, 2, 0
	.func	51
;----------------------------------------------------------------------
;  51 | void SetPWMFreq(long PWMFreqInKHz)                                     
;----------------------------------------------------------------------

;***************************************************************
;* FNAME: _SetPWMFreq                   FR SIZE:   6           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            2 Parameter,  4 Auto,  0 SOE     *
;***************************************************************

_SetPWMFreq:
	.line	2
;* AL    assigned to _PWMFreqInKHz
	.sym	_PWMFreqInKHz,0, 5, 17, 32
	.sym	_PWMFreqInKHz,-4, 5, 1, 32
	.sym	_temp,-6, 5, 1, 32
        ADDB      SP,#6
;----------------------------------------------------------------------
;  53 | long temp;                                                             
;----------------------------------------------------------------------
        MOVL      *-SP[4],ACC           ; |52| 
	.line	4
;----------------------------------------------------------------------
;  54 | temp = HISPCLK_FREQ/PWMFreqInKHz;                                      
;----------------------------------------------------------------------
        MOVL      ACC,*-SP[4]           ; |54| 
        MOVL      *-SP[2],ACC           ; |54| 
        MOV       ACC,#9375 << 3
        FFC       XAR7,#L$$DIV          ; |54| 
        ; call occurs [#L$$DIV] ; |54| 
        MOVL      *-SP[6],ACC           ; |54| 
	.line	5
;----------------------------------------------------------------------
;  55 | EvaRegs.T1PR = temp;                                                   
;  56 | //      EvaRegs.T1PR = 1000;                                           
;----------------------------------------------------------------------
        MOVW      DP,#_EvaRegs+3
        MOV       AL,*-SP[6]            ; |55| 
        MOV       @_EvaRegs+3,AL        ; |55| 
	.line	7
        SUBB      SP,#6
        LRETR
        ; return occurs
	.endfunc	57,000000000h,6



	.sect	".text"
	.global	_SetPWMWidth
	.sym	_SetPWMWidth,_SetPWMWidth, 32, 2, 0
	.func	65
;----------------------------------------------------------------------
;  65 | void SetPWMWidth(long WidthInNormal)                                   
;----------------------------------------------------------------------

;***************************************************************
;* FNAME: _SetPWMWidth                  FR SIZE:   6           *
;*                                                             *
;* FUNCTION ENVIRONMENT                                        *
;*                                                             *
;* FUNCTION PROPERTIES                                         *
;*                            2 Parameter,  4 Auto,  0 SOE     *
;***************************************************************

_SetPWMWidth:
	.line	2
;* AL    assigned to _WidthInNormal
	.sym	_WidthInNormal,0, 5, 17, 32
	.sym	_WidthInNormal,-4, 5, 1, 32
	.sym	_temp,-6, 5, 1, 32
        ADDB      SP,#6
;----------------------------------------------------------------------
;  67 | long temp;                                                             
;----------------------------------------------------------------------
        MOVL      *-SP[4],ACC           ; |66| 
	.line	4
;----------------------------------------------------------------------
;  68 | temp = EvaRegs.T1PR;                                                   
;----------------------------------------------------------------------
        MOVW      DP,#_EvaRegs+3
        MOVU      ACC,@_EvaRegs+3
        MOVL      *-SP[6],ACC           ; |68| 
	.line	5
;----------------------------------------------------------------------
;  69 | EvaRegs.CMPR1 = temp*WidthInNormal/40;                                 
;----------------------------------------------------------------------
        MOVB      ACC,#40
        MOVL      *-SP[2],ACC           ; |69| 
        MOVL      XT,*-SP[4]            ; |69| 
        IMPYL     ACC,XT,*-SP[6]        ; |69| 
        FFC       XAR7,#L$$DIV          ; |69| 
        ; call occurs [#L$$DIV] ; |69| 
        MOV       @_EvaRegs+23,AL       ; |69| 
	.line	6
;----------------------------------------------------------------------
;  70 | EvaRegs.CMPR2 = temp*WidthInNormal/40;                                 
;----------------------------------------------------------------------
        MOVB      ACC,#40
        MOVL      *-SP[2],ACC           ; |70| 
        MOVL      XT,*-SP[4]            ; |70| 
        IMPYL     ACC,XT,*-SP[6]        ; |70| 
        FFC       XAR7,#L$$DIV          ; |70| 
        ; call occurs [#L$$DIV] ; |70| 
        MOV       @_EvaRegs+24,AL       ; |70| 
	.line	7
;----------------------------------------------------------------------
;  71 | EvaRegs.CMPR3 = temp*WidthInNormal/40;                                 
;  72 | //      EvaRegs.CMPR1 = 300;                                           
;  73 | //      EvaRegs.CMPR2 = 400;                                           
;  74 | //      EvaRegs.CMPR3 = 300;                                           
;----------------------------------------------------------------------
        MOVB      ACC,#40
        MOVL      *-SP[2],ACC           ; |71| 
        MOVL      XT,*-SP[4]            ; |71| 
        IMPYL     ACC,XT,*-SP[6]        ; |71| 
        FFC       XAR7,#L$$DIV          ; |71| 
        ; call occurs [#L$$DIV] ; |71| 
        MOV       @_EvaRegs+25,AL       ; |71| 
	.line	11
        SUBB      SP,#6
        LRETR
        ; return occurs
	.endfunc	75,000000000h,6


;***************************************************************
;* UNDEFINED EXTERNAL REFERENCES                               *
;***************************************************************
	.global	_EvaRegs
	.global	L$$DIV

;***************************************************************
;* TYPE INFORMATION                                            *

⌨️ 快捷键说明

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