ADC采用epwm来控制ADC启动,系统频率为150MHz,period等于3750,采样点数为3000点,采样总时间应该为0.6ms,可是我单步运行采样的那段程序至少运行了2S,为什么呢?
时钟设置程序如下:
EPwm1Regs.TBPRD = Period; //周期为2*period个TBCLK
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV4; //分频系数A:2*k
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1; //分频系数B:2^k
//TBCLK=SYSCLKOUT/(A*B)
此帖出自
小平头技术问答
我用IO引脚来测程序运行时间,确实没有那么久,但是也和理论不一样,我的period设置为625时,程序运行时间为550ms,两通道理论ADC时间为200ms,也就是其它滤波计算程序时间为350ms;当我把period设置为1250时,两通道理论ADC时间为400ms,理论程序运行时间应该为750ms,但实际测量得到的时间为800ms,这个时间测量误差最多10ms,但是为什么理论和实际还相差了50ms呢?
两通道采集改为一通道后,period仍设置为1250,程序运行时间为710ms
我把采样触发周期算错了,我设置的epwm是增计数,所以当period等于1250时,3000个点的采样时间为100ms,我又设置了5次过采样,总时间为500ms,而且单通道采样和双通道采样总共的采样时间是一样的,这回算是搞明白了
一周热门 更多>