各位大佬们好,感谢大佬们不吝赐教,我的问题如下:
1、 EvaRegs.ACTRA.all = 0x0000;这句中ACTRA寄存器为什么这样设置呢,查表这是禁止了PWM1~6的发生;
2、EvaRegs.GPTCONA.all = 0x0000;这句中GPTCONA寄存器为什么这样设置呢,查表这是禁止了 定时器1.2的比较输出
程序如下:
EvaRegs.T1CON.all = BLDCPWM_INIT_STATE; // Init PWM Operation
EvaRegs.ACTRA.all = 0x0000; //######################禁止PWM1~6的发生########################### EvaRegs.GPTCONA.all = 0x0000; //###################禁止定时器的比较输出######################
EvaRegs.COMCONA.all = 0xA200;
GpioMuxRegs.GPAMUX.all |= 0x003F; // Setting PWM1-6 as primary output pins
EDIS; // Disable EALLOW
Susan Yang:您可以参考一下
www.ti.com/…/spru065e.pdf
ACTRA比较方式控制寄存器,控制PWM引脚的 高/低 有效,设置了COMCONx,则ACTRA和ACTRB会重新加载
The compare action control registers (ACTRA and ACTRB) control the action that takes place on each of the six compare output pins (PWMx, where x = 1−6 for ACTRA, and x = 7−12 for ACTRB) on a compare event, if the compare operation is enabled by COMCONx[15]. ACTRA and ACTRB are doublebuffered. The condition on which ACTRA and ACTRB is reloaded is defined by bits in COMCONx.ACTRA and ACTRB also contain the SVRDIR, D2, D1,and D0 bits needed for space vector PWM operation.
各位大佬们好,感谢大佬们不吝赐教,我的问题如下:
1、 EvaRegs.ACTRA.all = 0x0000;这句中ACTRA寄存器为什么这样设置呢,查表这是禁止了PWM1~6的发生;
2、EvaRegs.GPTCONA.all = 0x0000;这句中GPTCONA寄存器为什么这样设置呢,查表这是禁止了 定时器1.2的比较输出
程序如下:
EvaRegs.T1CON.all = BLDCPWM_INIT_STATE; // Init PWM Operation
EvaRegs.ACTRA.all = 0x0000; //######################禁止PWM1~6的发生########################### EvaRegs.GPTCONA.all = 0x0000; //###################禁止定时器的比较输出######################
EvaRegs.COMCONA.all = 0xA200;
GpioMuxRegs.GPAMUX.all |= 0x003F; // Setting PWM1-6 as primary output pins
EDIS; // Disable EALLOW
user6007383:
回复 Susan Yang:
您好,首先感谢您的回答,可能是我没表达清楚,我的疑问是为什么初始化时禁止了PWM1~6的发生呢,不应该使能吗?
各位大佬们好,感谢大佬们不吝赐教,我的问题如下:
1、 EvaRegs.ACTRA.all = 0x0000;这句中ACTRA寄存器为什么这样设置呢,查表这是禁止了PWM1~6的发生;
2、EvaRegs.GPTCONA.all = 0x0000;这句中GPTCONA寄存器为什么这样设置呢,查表这是禁止了 定时器1.2的比较输出
程序如下:
EvaRegs.T1CON.all = BLDCPWM_INIT_STATE; // Init PWM Operation
EvaRegs.ACTRA.all = 0x0000; //######################禁止PWM1~6的发生########################### EvaRegs.GPTCONA.all = 0x0000; //###################禁止定时器的比较输出######################
EvaRegs.COMCONA.all = 0xA200;
GpioMuxRegs.GPAMUX.all |= 0x003F; // Setting PWM1-6 as primary output pins
EDIS; // Disable EALLOW
user6007383:
如题:例程中PWM初始化时有EvaRegs.GPTCONA.all = 0x0000;差表这样是将输出PWM的定时器1比较输出极性设置成强制低,并禁止定时器1的比较输出。
所以我很困惑,这样不是禁止PWM 的输出吗?是例程错了吗?初始化语句如下:
void F281X_EV1_BLDC_PWM_Init(PWMGEN *p) { EvaRegs.T1PR = p->PeriodMax; // Init Timer 1 Period Register EvaRegs.T1CON.all = BLDCPWM_INIT_STATE; // Init PWM Operation EvaRegs.ACTRA.all = 0x0000; EvaRegs.GPTCONA.all = 0x0000; EvaRegs.COMCONA.all = 0xA200;
EALLOW; // Enable EALLOW GpioMuxRegs.GPAMUX.all |= 0x003F; // Setting PWM1-6 as primary output pins EDIS; // Disable EALLOW}