This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
在TI给的电机控制例程里,
(*ePWM[ch1]).TBCTL.all = PWM_INIT_STATE;
而
#define PWM_INIT_STATE (
FREE_RUN_FLAG + \
PRDLD_IMMEDIATE + \
TIMER_CNT_UPDN + \
HSPCLKDIV_PRESCALE_X_1 + \
CLKDIV_PRESCALE_X_1 + \
PHSDIR_CNT_UP + \
CNTLD_DISABLE )
#define FREE_RUN_FLAG 0x8000
#define PRDLD_IMMEDIATE 0x0008
。。。。。。依次还有很多
这是什么意思呢?为什么这么多控制符呢?程序是个什么逻辑呢?
给CTL寄存器不是赋一个值就行了吗? 那么多是先赋一个 再赋下一个 还是什么意思呢?
#define FREE_RUN_FLAG 0x8000
#define PRDLD_IMMEDIATE 0x0008
这个是把寄存器的每一位先分别定义需要的值
(*ePWM[ch1]).TBCTL.all = PWM_INIT_STATE;
然后把之前定义的每一位整合到一起,同时赋值到整个CTL寄存器