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

📄 pwm.asm

📁 DSP的汇编程序
💻 ASM
字号:
        .include  "F2407REGS.H"           ;引用头部文件
        .def      _c_int0
		
		.data
TEMP	.word     09Fh	
MAX_VALUE .set	  09Fh	
		        
		.sect     ".vectors"              ;定义主向量段   
		
RSVECT      B   _c_int0             ;PM 0   Reset Vector        1
INT1        B   PHANTOM             ;PM 2   Int level 1         4
INT2        B   GISR2               ;PM 4   Int level 2         5
INT3        B   PHANTOM             ;PM 6   Int level 3         6
INT4        B   PHANTOM             ;PM 8   Int level 4         7
INT5        B   PHANTOM             ;PM A   Int level 5         8
INT6        B   PHANTOM             ;PM C   Int level 6         9
RESERVED    B   PHANTOM             ;PM E   (Analysis Int)      10
SW_INT8     B   PHANTOM             ;PM 10  User S/W int        -
SW_INT9     B   PHANTOM             ;PM 12  User S/W int        -
SW_INT10    B   PHANTOM             ;PM 14  User S/W int        -
SW_INT11    B   PHANTOM             ;PM 16  User S/W int        -
SW_INT12    B   PHANTOM             ;PM 18  User S/W int        -
SW_INT13    B   PHANTOM             ;PM 1A  User S/W int        -
SW_INT14    B   PHANTOM             ;PM 1C  User S/W int        -
SW_INT15    B   PHANTOM             ;PM 1E  User S/W int        -
SW_INT16    B   PHANTOM             ;PM 20  User S/W int        -
TRAP        B   PHANTOM             ;PM 22  Trap vector         -
NMI         B   PHANTOM             ;PM 24  Non maskable Int    3
EMU_TRAP    B   PHANTOM             ;PM 26  Emulator Trap       2
SW_INT20    B   PHANTOM             ;PM 28  User S/W int        -
SW_INT21    B   PHANTOM             ;PM 2A  User S/W int        -
SW_INT22    B   PHANTOM             ;PM 2C  User S/W int        -
SW_INT23    B   PHANTOM             ;PM 2E  User S/W int        -
SW_INT24    B   PHANTOM             ;PM 30  User S/W int        -
SW_INT25    B   PHANTOM             ;PM 32  User S/W int        -
SW_INT26    B   PHANTOM             ;PM 34  User S/W int        -
SW_INT27    B   PHANTOM             ;PM 36  User S/W int        -
SW_INT28    B   PHANTOM             ;PM 38  User S/W int        -
SW_INT29    B   PHANTOM             ;PM 3A  User S/W int        -
SW_INT30    B   PHANTOM             ;PM 3C  User S/W int        -
SW_INT31    B   PHANTOM             ;PM 3E  User S/W int        -

        .sect   ".pvecs"            ;定义子向量段
PVECTORS
        B       PHANTOM             ;Reserved pvector addr offset-0000h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0005h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-000ah
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0010h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0015h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-001Ah
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0020h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0025h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;pvector addr offset 0x027h - T1PINT中断
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-002Ah
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       T3GP_ISR            ;pvector addr offset 0x02f - T3PINT
        B       PHANTOM             ;Reserved pvector addr offset-0030h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-0035h
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-003aAh
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset
        B       PHANTOM             ;Reserved pvector addr offset-003Fh
        B       PHANTOM             ;pvector addr offset 0x040h - CAN接收中断
        B       PHANTOM             ;Reserved pvector addr offset-0041h

        .text
_c_int0
        CALL    SYSINIT             ;系统初始化程序
        CALL    PWM_INIT            ;EVB模块PWM初始化程序
WAIT
        NOP
        B       WAIT

SYSINIT: 
        SETC    INTM
        CLRC    SXM
        CLRC    OVM
        CLRC    CNF                 ;B0区被配置为数据空间
        LDP     #0E0H               ;指向7000h~7080h区
        SPLK    #81FEH, SCSR1       ;时钟4倍频, CLKIN=10 M, CLKOUT=40 M
        SPLK    #0E8H, WDCR         ;不使能WDT
        LDP     #0
        SPLK    #0002H, IMR         ;使能中断第2级INT2
        SPLK    #0FFFFH, IFR        ;清全部中断标志
        RET         

PWM_INIT: 
        LDP     #DP_PF2             ;指向7080h~7100h区
        LACL    MCRC
        OR      #007EH              ;IOPE[1~6]被配置为基本功能方式: PWM[7~12]
        SACL    MCRC
        LDP     #DP_EVB             ;指向7500h~7580h区
        SPLK    #0FFFFH, EVBIFRA    ;清EVB 全部中断标志
        SPLK    #0666H, ACTRB       ;PWM12, 10, 8 低有效, PWM11, 9, 7 高有效
        SPLK    #00H, DBTCONB       ;不使能死区控制                  
        
        ;**************************************************************************
        SPLK    #90H, CMPR4         ;设置比较初值 PWM7高电平占50/100, 
                                    ;低电平占10/100  
                                    ;修改该值可以改变PWM8的占空比,即输出电压的改变
        ;**************************************************************************
                                    
        SPLK    #20H, CMPR5         ;设置PWM9, 10的比较寄存器
        SPLK    #30H, CMPR6         ;设置PWM11, 12的比较寄存器
        
        SPLK    #100H, T3PR         ;设置定时器3周期寄存器, 
                                    ;即PWM周期为60个CPU时钟周期
                                    
        SPLK    #0A600H, COMCONB    ;使能比较操作
        SPLK    #0, T3CNT
        SPLK    #41H, GPTCONB       ;TCOMPOE=1, T3PIN=01
        SPLK    #080H, EVBIMRA      ;通用定时器3使能
        SPLK    #0174EH, T3CON      ;TMODE=10 连续增计数模式, TPS=111 预分频为128
                                    ;TENABLE=1 定时器计数使能,TCLKS=00
                                    ;内部时钟
                                    ;TECMPR=1 定时器3比较使能,SELT3PR=0 
        CLRC    INTM                ;开总中断
        RET

GISR2:                              ;优先级INT2中断入口
                                    ;保护现场
        LDP     #0E0H
        LACC    PIVR, 1             ;读取外设中断向量寄存器(PIVR), 并左移一位
        ADD     #PVECTORS           ;加上外设中断入口地址
        BACC                        ;跳到相应的中断服务子程序
T3GP_ISR:                           ;通用定时器3中断入口
		LDP		#DP_B01                          
        LACC	TEMP
                            
        LDP     #DP_EVB                            
        SACL    CMPR4         		;重新设置比较初值,使之输出锯齿波
        SUB		#1
		BCND	GISR2_RET, NEQ   
		LACC	#MAX_VALUE
        
GISR2_RET:
		                            ;中断返回
                                    ;恢复现场  
        LDP		#DP_B01                                    
        SACL	TEMP	
        	                                   
        LDP     #DP_EVB
        SPLK    #0, T3CNT      
        SPLK    #080H, EVBIFRA            
        	                                   
        CLRC    INTM                ;开总中断, 因为一进中断就自动关闭总中断
        RET

PHANTOM
        ;KICK_DOG                   ;复位看门狗
        RET
        END

⌨️ 快捷键说明

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