A/D采样子程序
主要完成线电流采样和线电压采样。为确保电压与电流信号间没有相对相移,本部分利用TMS320F28335片上ADC的同步采样方式。为提高采样精度,在A/D中断子程序中采用了均值滤波的方法。
interrupt void adc_isr(void)
{
if(counter==0)
{
receive_a0_data[i++] = AdcRegs.ADCRESULT0>>4; //右移四位
receive_b0_data[j++] = AdcRegs.ADCRESULT1>>4; //右移四位
}
if(counter>=1)
{ // 对结果取平均,平滑滤波
receive_a0_data[i++] = (receive_a0_data[i0++]+(AdcRegs.ADCRESULT0>>4))/2;
receive_b0_data[j++] = (receive_b0_data[j0++]+(AdcRegs.ADCRESULT1>>4))/2;
}
if(i==512) {i=0;i0=0;}
if(j==512) {j=0;j0=0; counter++;}
AdcRegs.ADCTRL2.bit.RST_SEQ1 = 1; // 复位排序器
AdcRegs.ADCST.bit.INT_SEQ1_CLR = 1; // 清中断标志位
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // 开中断应答
|