这个文件是:MS320x2833x, 2823x Enhanced Capture (eCAP) Module Reference Guide
在它的第39页有这样一个程序例程,实际上是错误的:
对ECAP2和ECAP3的初始化有问题,应该先选择模式为APWM模式,再写入CAP1和CAP2的初始值,如上图这样把模式选择放在给CAP1/2赋值之后,将不会配置成功!
个人猜测原因是选择不同模式后应该会把CAP1/2/3/4里的值都重置一次,所以之前写入给CAP1/2的值被刷掉了!
正确的写法是先写:ECap2Regs.ECCTL2.bit.CAP_APWM = EC_APWM_MODE;
然后在配置其他的功能,如:
ECap2Regs.CAP1 = 1200; // Set period value
ECap2Regs.CTRPHS = 800; // Phase offset = 1200-400 = 120 deg
ECap2Regs.ECCTL2.bit.APWMPOL = EC_ACTV_HI;
ECap2Regs.ECCTL2.bit.SYNCI_EN = EC_ENABLE; // slaved off master
ECap2Regs.ECCTL2.bit.SYNCO_SEL = EC_SYNCIN; // sync "flow-through"
ECap2Regs.ECCLR.all = 0x0FF; // Clear pending interrupts
当然,我不知道前人有没有发现这个错误,或者TI已经出了勘误文件,但确实难为了我好久才发现这个问题!
希望对人有用!
月辰0001:
上面没有显示的图片现在附上: