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

📄 lsvpwm.asm

📁 本程序为TI-DSP-240中正弦PWM波形生成程序。
💻 ASM
📖 第 1 页 / 共 3 页
字号:
		SPLK #1EEFH,DBTCON		;3us
		;SPLK 1CEFH,DBTCON		;2.8us;
        SPLK    #0, CMPR1               ;
        SPLK    #0, CMPR2               ;
        SPLK    #0, CMPR3               ;再一次清零 
        
        LDP	#0E1H
		SPLK	#1800H,OCRA 	;使能T1PWM,T2PWM引脚
		
		LDP	#0E8H
		SPLK	#0000000001100101B,GPTCON	;
		       
		splk 	#0,T1CNT		;T1计数器初值
		SPLK	#0307H, COMCON		;COMCON NEED TO BE WRITTEN TWICE
		SPLK	#8307H, COMCON		;FOR PROPER OPERATION	
	    splk	#0010100011000011B,T2CON;使用T1,忽略本身
        
        SPLK	#0010100011000010B,T2CON	;13-11连续增减计数,10-8预定标1,
		SPLK	#0010100000000010B,T1CON	;13-11连续增减计数,10-8预定标1,
		SPLK	#0010100001000010B,T1CON 
        
        ;SPLK    #2802H,T1CON            ;CONTINUOUS UP/DOWN COUNT MODE
                	;0010 1000 0000 0010
        ;SPLK    #2802H,T1CON		;CONTINUOUS UP/DOWN COUNT MODE
        
		;lacc 	T1CON
		;or 	#40h
		;sacl 	T1CON		;(T1CON)=02842H
		;sacl 	T1CON		;(T1CON)=02842H
      
		SPLK	#0200H, EVIMRA    ;只有下溢中断有效
		LACC	EVIVRA
        SPLK	#0H, EVIMRB
		LACC	EVIVRB                                                


;---------------------------scope 初始化--------------------------
                LDP     #0
                splk	#0,FailFlag
		SPLK	#1,RunFlag
		splk	#1,RunEnable
		LAR	AR1,#60H		;栈底
		setc 	OVM		
		setc 	sxm 			;sign extension mode
;=================================================================
;示波器初始化
		.if (scope_Enable==1)
		call	ScopeInitNoLoop
		.endif
		
;---------------------------------
; ENABLE USED INTERRUPT
;-------------------------------------------------------------------
       LDP	#0E8H
                ;splk	#1H, EVIMRB
       splk    #0200H, EVIMRA	;ENABAL T1 UNDERFLAW 
       LDP 	#00H
       splk    #12H, IMR	;ENABLE TIMER1 INTERRUPT(INT2) and INT5
					
	   CLRC 	INTM		;开中断
           ;LAR     AR7,#8000H
                
;==================================================================		
MENU		NOP

		.if (scope_Enable==1)		
		call	ModifyOnline
		call	MultiSingle_online
		.endif
		
		B	MENU
		
;======================================================================
;INT2中断服务程序,包括TIMER1中断
;======================================================================
GISR2:		Store1
		LDP		#EVIVRA/128    	;
		LACC	EVIVRA		;读中断向量寄存器
		SUB		#29H		;29H代表T1UFINT
		BCND	SINE,EQ		;是TIMER1下溢中断,跳转到SINE
		B       GISR2_OUT	;否则跳出中断	

SINE	LDP		#TETA/128
		LACC	TETA        ;LOAD TETA角度 to ACC
		ADD		STEP		;加上角度增量STEP	
		AND		#0FFH       ;保证低八位为正
		SACL	TETA        ;付新值给TETA
		
		LACC	TETA        ;TETA->ACC
		ADD	#SINTAB         ;加上SIN表入口地址
	    TBLR	SINTETA     ;将对应的SIN值存入SINTETA中  

		LT	SINTETA         ;LOAD SINTETA到 TREG
		MPY	MAG_A           ;乘上幅值
		PAC                 ;加载到ACC
		SACH	RESULT,1    ;RESULT=M*SIN(TETA) 
	
		LACC	PERIOD      ;RESULT=RERIOD/2+M*SIN(TETA)
		SFR
		ADD		RESULT
		SACL	RESULT		
		
		LACC	RESULT
		LDP		#0E8H
		SACL	CMPR1        ;RESULT->CMPR1
	    SACL	T1CMPR		 ;输出模拟量
		SACL	T2CMPR	
		;SPLK    #750,CMPR1
		;SPLK    #250,T1CMPR
;===========================================================================
		.if (scope_Enable==1)
		call	SaveToBuffer	;数据存入缓存
		.endif
		
		Clock_S01	S01,S01_K,Clock
;========================================================================
GISR2_OUT	
		LDP	#EVIFRA/128	
	    LACC	EVIFRA		;
		SACL	EVIFRA		;清中断标志位
		Restore1		
 		CLRC	INTM
		RET
		
;=====================================================================
PHANTOM 	KICK_DOG			;RESETS WD COUNTER
		B	PHANTOM
		

;===============================================================================
SERIAL:		Store3

		ldp	#IMR/128
		SBIT0	IMR,B4_MSK		;在ScopeTX使SCI中断禁止
		CLRC	INTM			;开中断	
				
		LDP	#SYSIVR/128	      	
		LACl	SYSIVR
		SUB	#6
		BCND	RXINT,EQ
		B       TXINT
;---------------------------------------------------------------------
RXINT		call	ScopeRX
		b	SERIAL_end		
;---------------------------------------------------------------------
TXINT		call	ScopeTX
;---------------------------------------------------------------------
		
SERIAL_end	SETC	INTM
		ldp	#IMR/128
		SBIT1	IMR,B4_MSK		;SCI中断使能
		Restore3
		CLRC	INTM			;开中断	
		RET	
;---------------------------------------------------------------------
		
;-------------------------------------------------------
; Sine look-up table
; No. Entries	: 256
; Angle Range	: 360 deg
; Number format : Q15 with range -1 < N < +1
;-------------------------------------------------------
		      ;SINVAL	     ;	      Index	Angle	Sin(Angle)
SINTAB	    .word	0	     ;		0	 0	  0.0000
            .word        804         ;          1        1.41     0.0245
            .word       1608         ;          2        2.81     0.0491
            .word       2410         ;          3        4.22     0.0736
            .word       3212         ;          4        5.63     0.0980
            .word       4011         ;          5        7.03     0.1224
            .word       4808         ;          6        8.44     0.1467
            .word       5602         ;          7        9.84     0.1710
            .word       6393         ;          8       11.25     0.1951
            .word       7179         ;          9       12.66     0.2191
            .word       7962         ;         10       14.06     0.2430
            .word       8739         ;         11       15.47     0.2667
            .word       9512         ;         12       16.88     0.2903
            .word       10278        ;         13       18.28     0.3137
            .word       11039        ;         14       19.69     0.3369
            .word       11793        ;         15       21.09     0.3599
            .word       12539        ;         16       22.50     0.3827
            .word       13279        ;         17       23.91     0.4052
            .word       14010        ;         18       25.31     0.4276
            .word       14732        ;         19       26.72     0.4496
            .word       15446        ;         20       28.13     0.4714
            .word       16151        ;         21       29.53     0.4929
            .word       16846        ;         22       30.94     0.5141
            .word       17530        ;         23       32.34     0.5350
            .word       18204        ;         24       33.75     0.5556
            .word       18868        ;         25       35.16     0.5758
            .word       19519        ;         26       36.56     0.5957
            .word       20159        ;         27       37.97     0.6152
            .word       20787        ;         28       39.38     0.6344
            .word       21403        ;         29       40.78     0.6532
            .word       22005        ;         30       42.19     0.6716
            .word       22594        ;         31       43.59     0.6895
            .word       23170        ;         32       45.00     0.7071
            .word       23731        ;         33       46.41     0.7242
            .word       24279        ;         34       47.81     0.7410
            .word       24811        ;         35       49.22     0.7572
            .word       25329        ;         36       50.63     0.7730
            .word       25832        ;         37       52.03     0.7883
            .word       26319        ;         38       53.44     0.8032
            .word       26790        ;         39       54.84     0.8176
            .word       27245        ;         40       56.25     0.8315
            .word       27683        ;         41       57.66     0.8449
            .word       28105        ;         42       59.06     0.8577
            .word       28510        ;         43       60.47     0.8701
            .word       28898        ;         44       61.88     0.8819
            .word       29268        ;         45       63.28     0.8932
            .word       29621        ;         46       64.69     0.9040
            .word       29956        ;         47       66.09     0.9142

⌨️ 快捷键说明

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