高阻状态 ·基于定时器计数模式和输出逻辑的非对称/ 对称波形发生器同样适用于比较单元。当 出现下列情况之一时,所有通用定时器的 PM输出都被置成高阻状态: 软件将 GPTCONA/B[6]清零; PDPINTX引脚被拉低而且没有屏蔽; 任何一个复位信号发生; 软件将 TXCON[1]清零
高阻状态 • 基于定时器计数模式和输出逻辑的非对称/ 对称波形发生器同样适用于比较单元。当 出现下列情况之一时,所有通用定时器的 PWM输出都被置成高阻状态: –软件将GPTCONA/B[6]清零; –PDPINTx引脚被拉低而且没有屏蔽; –任何一个复位信号发生; –软件将TxCON[1] 清零
连续增计数模式下的通用定时器比较PWM输出 定时器 定时器 (PWM (PWM) 周期1 周期2 比较 匹配 定时器的值 新的 比较值大于周期 TxPWM/TxCMP 有效 低有效 无效 Tx PWM/TXCM 高有效 有效 图97在连续增计数模式下的通用定时器比较PwM输出
连续增计数模式下的通用定时器比较PWM输出
定时器 定时器 K PWM) (pWM) 周期1 周期2 比较 匹 定时器的值 重新装载的 比较值大于周期 xPWM/ TXCMP 有效 低有效 无效 PWMTXCMP 高有效 图98在连续增/减模式下的通用定时器比较PWM输出
9225通用定时器应用举例 般的通用定时器可以提供周期测量、脉冲宽度测量、产生脉冲等多种工作模式,C28 的事件管理器模块提供的定时器基本上也可以实现这几种工作模式。定时器在定时计数过程 ·中可以利用处理器内部的可编程时钟,也可以通过外部 TCLKINA(B)作为计数时钟。定 时器在产生PWM信号输出时,可以结合比较单元产生电机控制系统需要的脉宽调制信号, 也可以独立使用控制定时器本身的PWM信号输出(T1PMMT1cMP和T2PWMT2CMP) ·用通用定时器产生PWM输出,可以采用连续递增或连续增/减计数模式,当选用连续递 增计数模式时,可产生边沿触发或非对称P\WM波形;当选用连续增/减计数模式时,可产生 ·对称PWM波形,可以通过下列操作产生PWM信号: 根据所需的PWM(载波)周期设置TXPR 设置τκCON寄存器,确定计数器模式和时钟源,并启动門WMM输出操作 将软件计算出来的PWM脉冲宽度(占空比)装载到 TXCMPR寄存器中 ·如果选用连续递增计数模式来产生非对称PMM波形,把所需的PWM周期除以通用定时 ·器输入时钟的周期然后减1便得出定时器的周期。如果选用连续增/减计数模式产生非对称 PwM波形,把所需的PWM周期除以2倍的通用定时器输入时钟周期就得出定时器的周期 在程序运行的过程中,软件可以计算PWM的占空比,适时的刷新比较寄存器的设置。 在F2812信号处理板上将T1PWWM经过简单的运放电路后输出,可以直接将其输出连接 到扬声器,然后通过改变定时器的周期输出8种频率的信号方波信号模拟8种电子音效。实际 ·上,在实际生活中音频信号是多种频率的正弦波信号合成的结果,当然也可以利用PWM输 出产生正弦波信号。在本实验中利用定时器0产生50ms的定时中断,在每次CPU响应定时器 中断过程中,装载下一个周期的定时器1的比较和周期寄存器值。通过这种方式轮回的产生 ·几种不同频率的PWM波
9.2.2.5 通用定时器应用举例 • 一般的通用定时器可以提供周期测量、脉冲宽度测量、产生脉冲等多种工作模式,C28x • 的事件管理器模块提供的定时器基本上也可以实现这几种工作模式。定时器在定时计数过程 • 中可以利用处理器内部的可编程时钟,也可以通过外部TCLKINA(B)作为计数时钟。定 • 时器在产生PWM信号输出时,可以结合比较单元产生电机控制系统需要的脉宽调制信号, • 也可以独立使用控制定时器本身的PWM信号输出(T1PWM_T1CMP和T2PWM_T2CMP)。 • 用通用定时器产生PWM输出,可以采用连续递增或连续增/减计数模式,当选用连续递 • 增计数模式时,可产生边沿触发或非对称PWM波形;当选用连续增/减计数模式时,可产生 • 对称PWM波形,可以通过下列操作产生PWM信号: • 根据所需的PWM(载波)周期设置TxPR; • 设置TxCON寄存器,确定计数器模式和时钟源,并启动PWM输出操作; • 将软件计算出来的PWM脉冲宽度(占空比)装载到TxCMPR寄存器中。 • 如果选用连续递增计数模式来产生非对称PWM波形,把所需的PWM周期除以通用定时 • 器输入时钟的周期然后减1便得出定时器的周期。如果选用连续增/减计数模式产生非对称 • PWM波形,把所需的PWM周期除以2倍的通用定时器输入时钟周期就得出定时器的周期。 • 在程序运行的过程中,软件可以计算PWM的占空比,适时的刷新比较寄存器的设置。 • 在F2812信号处理板上将T1PWM经过简单的运放电路后输出,可以直接将其输出连接 • 到扬声器,然后通过改变定时器的周期输出8种频率的信号方波信号模拟8种电子音效。实际 • 上,在实际生活中音频信号是多种频率的正弦波信号合成的结果,当然也可以利用PWM输 • 出产生正弦波信号。在本实验中利用定时器0产生50ms的定时中断,在每次CPU响应定时器 • 中断过程中,装载下一个周期的定时器1的比较和周期寄存器值。通过这种方式轮回的产生 • 几种不同频率的PWM波
★★★★北★★★★★和北★★★★北★火;★★★★★★北★★★★★北北★北★★北★★★★ ·∥文件名称: Playatune.c ∥主要功能:DSP28T1PWM一输出PWM ∥CPU定时器0中断时间50ms ∥使能看门狗,并在主程序中复位看门狗计数寄存器 ★★★北★★★★★★★北★★★出★★★★★火★★★★★和★★★★★★★★★★★★★★和★★★★★★★★★火★ fincludeDSP281x Device h ∥函数原型声明 void Gpio select( void) void SpeedupReva( void) void Init System(void); nterrupt void cpu timer_isr(void);∥定时器0中断服务程序 void main( void) unsigned int i; unsigned long time stamp nt frequency[8={2219,1973,1776,1665,1480,1332,184,1110}
• //************************************************************ • // • // 文件名称:Playatune.c • // • // 主要功能:DSP28 T1PWM—输出PWM, • // CPU 定时器0中断时间50 ms • // 使能看门狗,并在主程序中复位看门狗计数寄存器 • // • //*************************************************************// • #include "DSP281x_Device.h" • // 函数原型声明 • void Gpio_select(void); • void SpeedUpRevA(void); • void InitSystem(void); • interrupt void cpu_timer0_isr(void); // 定时器0中断服务程序 • void main(void) • { • unsigned int i; • unsigned long time_stamp; • int frequency[8]={2219,1973,1776,1665,1480,1332,1184,1110};