这句话非常有用,就是宏定义把这个0x020003地址定义为LED3,下面的语句就是向这个旅槐则地址里写数拆棚据,这样就明喊可以点亮不同的LED灯的亮灭。
我简单说下吧如果你使用的是TIC2000系列dsp,下述可作为参考
为了产生一个PWM信号,DSP的定时器定时周期应该和PWM的周期相等。另外需要对DSP的EVA/EVB模块中的比较单皮氏元的比较寄存器设定数值,这样该数值一直与定时器的计数器值相比较,按照一定的比较方式,PWM即产生跳变。通过此种方式,DSP的PWM管脚就会产生一个宽度与比较寄存器数值成比例的脉冲信号。在定时器重复定时的过程中就产生了PWM信号。
使用DSP比较单元产生PWM波形不需要硬件连接图,只需对DPS的相关寄存器进行配置就可以在输出端得到相应的PWM波形,其具体 *** 作过程如下:
1设置比较方式控制寄存器ACTRx
2如有必要,使能死区功能,配置死区控制寄存器DBTCONx
3对比较寄存器CMPRx赋值
4设置定时器寄存器T1CON(T3CON)并启动定时
5通过更新CMPRx的数值改变PWM占空比的大小
对于我所熟悉的2407 DSP 程袭备序如下:
PWMINIT
LDP #0E1H
SPLK#0AH,MCRCPWM7,9
SPLK#0140H,MCRAPWM1,3
LDP #0E8H
SPLK#0,CMPR1
SPLK#0,CMPR2
SPLK#0H,ACTRA
SPLK#0H,DBTCONA
SPLK#0A600H,COMCONA
SPLK#2000,T1PR
SPLK#0,T1CNT
SPLK#0H,GPTCONA
SPLK#80H,EVAIMRA
SPLK#0FFFFH,EVAIFRA
SPLK#0FFFFH,EVAIFRB
SPLK#0FFFFH,EVAIFRC
LDP #0EAH
SPLK#0H,ACTRB
SPLK#0H,DBTCONB
SPLK#0,CMPR4
SPLK#0,CMPR5
SPLK#2000,T3PR
SPLK#0A600H,COMCONB
SPLK#0,T3CNT
SPLK#0FFFFH,EVBIFRA
SPLK#0FFFFH,EVBIFRB
SPLK#0FFFFH,EVBIFRC
RET
该段程序使用2407两个事件管理器模块的4个PWM输出引脚pwm1 pwm3 pwm7 pwm9进行pwm输出,定时器周期为2000,只要你将写燃禅散入CMPR的数值改变 就可以得到不同占空比的PWM波形,不妨试一试,前提是DSP可以正常工作
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)