SPWM 的程序说明
用 TMS320LF2407 实现三相 SPWM 波形发生器
FCL .usect ".data0",1 ;保存载波频率浮点数的低位
FCH .usect ".data0",1 ;保存载波频率浮点数的高位
FRL .usect ".data0",1 ;保存信号频率浮点数的低位
FRH .usect ".data0",1 ;保存信号频率浮点数的高位
AL .usect ".data0",1 ;保存调谐度浮点数低位
AH .usect ".data0",1 ;保存调谐度浮点数高位
N .usect ".data0",1 ;保存一个周期要输出的 PWM 脉冲个数
NL .usect ".data0",1 ;保存一个周期要输出的 PWM 脉冲个数浮点数低位
NH .usect ".data0",1 ;保存一个周期要输出的 PWM 脉冲个数浮点数低位
I .usect ".data0",1 ;保存当前输出的是第几个脉冲
T3PR_TEMPL .usect ".data0",1 ;保存定时器 3 周期寄存器值的浮点数低位
T3PR_TEMPH .usect ".data0",1 ;保存定时器 3 周期寄存器值的浮点数高位
DATIOL .usect ".data0",1 ;保存占空比浮点数低位
DATIOH .usect ".data0",1 ;保存占空比浮点数低位
DFLAG .usect ".data0",1 ;送出一个脉冲的标志寄存器
.include "F2407REGS.H" ;引用头部文件
.ref F$$ITOF,F$$DIV,F$$MUL,F$$FTOI,F$$ADD,F$$LTOF,F$$SUB
.ref _sin
.def _c_int0
;(1)建立中断向量表
.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_INT31 B PHANTOM ;PM 3E User S/W int —
;中断子向量入口定义 pvecs
.sect ".pvecs" ;定义子向量段
PVECTORS B PHANTOM ;Reserved pvector addr offset-0000h
B PHANTOM ;Reserved pvector addr offset-0001h
•
•
B PHANTOM ;Reserved pvector addr offset-002Eh
B T3GP_ISR ;Reserved pvector addr offset-002Fh T3PINT 中断