主题中讨论的其他器件:C2000WARE、 DRV8353
您好!
我正在尝试在2802中设置 PWM 寄存器、但它们仍保持复位为0。 如果我在调试模式下使用 CCS 手动尝试此操作、它们仍会恢复为0。 与 ADC 寄存器类似。
我可以使用相同的方法更改 CPU 内核寄存器和 GPIO 寄存器、这些值不变。 可以有人帮助吗?
oid init3ph(){
volatile Uint32 *pwm1BaseAddr;
volatile Uint32 *pwm2BaseAddr;
volatile Uint32 *pwm3BaseAddr;
// volatile Uint32 *pwm4BaseAddr;
Uint16 regOffset;
Uint16 reg_data;
pwm1BaseAddr = (Uint32 *)0x6800;
pwm2BaseAddr = (Uint32 *)0x6840;
pwm3BaseAddr = (Uint32 *)0x6880;
// pwm4BaseAddr = (Uint32 *)0x68c0;
EALLOW;
// setup code goes here..
//TBCTL
regOffset = 0x00;
reg_data = 0x0;
pwm1BaseAddr[regOffset] = reg_data;
pwm2BaseAddr[regOffset] = reg_data;
pwm3BaseAddr[regOffset] = reg_data;
//TBSTS tb Status
regOffset = 0x01;
reg_data = 0;
pwm1BaseAddr[regOffset] = reg_data;
pwm2BaseAddr[regOffset] = reg_data;
pwm3BaseAddr[regOffset] = reg_data;
//TBHSHR Extension for HRPWM Phase Register
regOffset = 0x02;
//TBPHS Time base Phase Register
regOffset = 0x03;
reg_data = 0;
pwm1BaseAddr[regOffset] = reg_data;
pwm2BaseAddr[regOffset] = 360;
pwm3BaseAddr[regOffset] = 720;
//TBCTR Time-Base Counter Register
//TBPRD Time-Base Period Register
regOffset = 0x03;
reg_data = 1080;
pwm1BaseAddr[regOffset] = reg_data;
pwm2BaseAddr[regOffset] = reg_data;
pwm3BaseAddr[regOffset] = reg_data;
}