Other Parts Discussed in Thread: SYSCONFIG, C2000WARE
问题1.
如注释中所写,SOC1的转换通道应该是A2,但是例程中SOC0和SOC1均为A0,虽然例程不关心转换结果,但是还是请TI工程是确认下是不是例程或者代码注释写错了
问题2.
以上代码块片段中,由于最终设置的上计数模式,所以周期应该是TBPRD+1个Tsysclk。因此我觉得工程本意是ePWM2设置为10000个系统时钟,配置的是9999;同样的,ePWM1是不是希望设置成2048个系统时钟,因此,ePWM1的TPPRD应该是配置成2047吧,虽然这个对例程的结果影响不大,但是还是请TI工程是确认一下
问题3.
我觉得高亮部分的代码时冗余的,在do之前的初始化已经使能触发ADC并配置计数模式了
问题4.
工程没有使用这个函数,可以注释掉;
问题5.
工程没有使用这个函数,因此声明和定义都可以删掉
问题6. ADCCOUNTER是在何时启动的呢?按照下文的描述,收到触发信号后会捕获ADCCOUNTER存储并到ADCPPBxTRIPLO.REQSTAMP,随后counter继续计数,用开始采样时刻的ADCCOUNTER减去ADCPPBxTRIPLO.REQSTAMP得到延迟时间。如果触发信号到来的时刻,ADCCOUNTER(12位计数器)的数值靠近4095,比如4080,那么开始采样时刻时的ADCCOUNTER数值有可能因为计数溢出为10吧,比如从4080溢出到10,本来经历了25个SYSCLK,但是如果用10 - 4080会导致DLYSTAMP的计算结果错误吧。
我在TRM手册中没有找到ADCCOUNTER计数器是何时启动的,不过感觉应该会有个启动条件吧,麻烦TI工程师指点一下