您好!
在F28M35H52C1数据手册中,有20个通道,
ADC1 10个 : ADC1INA0 ADC1INA2 ADC1INA3 ADC1INA4 ADC1INA6 ADC1INA7 ADC1INB0 ADC1INB3 ADC1INB4 ADC1INB7
ADC2 10个 :ADC2INA0 ADC2INA2 ADC2INA3 ADC2INA4 ADC2INA6 ADC2INA7 ADC2INB0 ADC2INB3 ADC2INB4 ADC2INB7
问题1:若需要全部同时采样20个通道,是不是在ADC1中配置10个通道?ADC2中配置10个通道?
问题2: 若读取数据时,是不是可在 interrupt void adc1_isr( void ) 中断函数中直接读这20个数据吗? 希望回复下,谢谢!
int Voltage1[10]={0};
int Voltage2[10]={0};
interrupt void adc1_isr( void )
{
Adc_Read_Results(Voltage1,Voltage2,10)
Adc1Regs.ADCINTFLGCLR.bit.ADCINT1 = 1; //Clear ADCINT1 flag reinitialize
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE
}
void Adc_Read_Results( unsigned int * Adc1,unsigned int * Adc2, Uint16 Num) //Num=10
{ Uint16 i;
for(i=0;i<Num;i++)
{ *( Adc1 +i)= *(&Adc1Result.ADCRESULT0+i);
*( Adc2 +i)= *(&Adc2Result.ADCRESULT0+i);
}
}
Hank Zhao:
1,每个ADC有16个通道,你可以每个配置10通道,也可以一个配置16个一个配置4个。
您好!
在F28M35H52C1数据手册中,有20个通道,
ADC1 10个 : ADC1INA0 ADC1INA2 ADC1INA3 ADC1INA4 ADC1INA6 ADC1INA7 ADC1INB0 ADC1INB3 ADC1INB4 ADC1INB7
ADC2 10个 :ADC2INA0 ADC2INA2 ADC2INA3 ADC2INA4 ADC2INA6 ADC2INA7 ADC2INB0 ADC2INB3 ADC2INB4 ADC2INB7
问题1:若需要全部同时采样20个通道,是不是在ADC1中配置10个通道?ADC2中配置10个通道?
问题2: 若读取数据时,是不是可在 interrupt void adc1_isr( void ) 中断函数中直接读这20个数据吗? 希望回复下,谢谢!
int Voltage1[10]={0};
int Voltage2[10]={0};
interrupt void adc1_isr( void )
{
Adc_Read_Results(Voltage1,Voltage2,10)
Adc1Regs.ADCINTFLGCLR.bit.ADCINT1 = 1; //Clear ADCINT1 flag reinitialize
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE
}
void Adc_Read_Results( unsigned int * Adc1,unsigned int * Adc2, Uint16 Num) //Num=10
{ Uint16 i;
for(i=0;i<Num;i++)
{ *( Adc1 +i)= *(&Adc1Result.ADCRESULT0+i);
*( Adc2 +i)= *(&Adc2Result.ADCRESULT0+i);
}
}
suny gong:
回复 Hank Zhao:
1,我所选用的是F28M35H52C1系列的CPU,若使用ACD1的10个通道采样,是不是需要配置 AIOMUX1寄存器呢?
如 需要使用 ADC1INA2 ADC1INA4 ADC1INA6 ADC1INB4 这几个AD通道 ,配置AIOMUX1 寄存器如下:
GpioG2CtrlRegs.AIOMUX1.bit.AIO2 = 2; // Configure AIO2 for A2 (analog // input) operation GpioG2CtrlRegs.AIOMUX1.bit.AIO4 = 2; // Configure AIO4 for A4 (analog // input) operation GpioG2CtrlRegs.AIOMUX1.bit.AIO6 = 2; // Configure AIO6 for A6 (analog // input) operation GpioG2CtrlRegs.AIOMUX1.bit.AIO12 = 2; // Configure AIO12 for B4 (analog // input) operation
配置好后,就可以直接当作AD通道使用吗?麻烦告知下.
2,ACD1 与ACD2是并行工作的吗?即相当于可以由epwm产生一个触发源,然后同时启动ACD1和ACD2进行采样,进入ADC中断后
,同时读取这20个通道数据。
谢谢了!
您好!
在F28M35H52C1数据手册中,有20个通道,
ADC1 10个 : ADC1INA0 ADC1INA2 ADC1INA3 ADC1INA4 ADC1INA6 ADC1INA7 ADC1INB0 ADC1INB3 ADC1INB4 ADC1INB7
ADC2 10个 :ADC2INA0 ADC2INA2 ADC2INA3 ADC2INA4 ADC2INA6 ADC2INA7 ADC2INB0 ADC2INB3 ADC2INB4 ADC2INB7
问题1:若需要全部同时采样20个通道,是不是在ADC1中配置10个通道?ADC2中配置10个通道?
问题2: 若读取数据时,是不是可在 interrupt void adc1_isr( void ) 中断函数中直接读这20个数据吗? 希望回复下,谢谢!
int Voltage1[10]={0};
int Voltage2[10]={0};
interrupt void adc1_isr( void )
{
Adc_Read_Results(Voltage1,Voltage2,10)
Adc1Regs.ADCINTFLGCLR.bit.ADCINT1 = 1; //Clear ADCINT1 flag reinitialize
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE
}
void Adc_Read_Results( unsigned int * Adc1,unsigned int * Adc2, Uint16 Num) //Num=10
{ Uint16 i;
for(i=0;i<Num;i++)
{ *( Adc1 +i)= *(&Adc1Result.ADCRESULT0+i);
*( Adc2 +i)= *(&Adc2Result.ADCRESULT0+i);
}
}
Hank Zhao:
回复 suny gong:
1,是的,ADC1通道的配置需要配置 AIOMUX1寄存器。配置完之后就可以当做AD通道使用。
您好!
在F28M35H52C1数据手册中,有20个通道,
ADC1 10个 : ADC1INA0 ADC1INA2 ADC1INA3 ADC1INA4 ADC1INA6 ADC1INA7 ADC1INB0 ADC1INB3 ADC1INB4 ADC1INB7
ADC2 10个 :ADC2INA0 ADC2INA2 ADC2INA3 ADC2INA4 ADC2INA6 ADC2INA7 ADC2INB0 ADC2INB3 ADC2INB4 ADC2INB7
问题1:若需要全部同时采样20个通道,是不是在ADC1中配置10个通道?ADC2中配置10个通道?
问题2: 若读取数据时,是不是可在 interrupt void adc1_isr( void ) 中断函数中直接读这20个数据吗? 希望回复下,谢谢!
int Voltage1[10]={0};
int Voltage2[10]={0};
interrupt void adc1_isr( void )
{
Adc_Read_Results(Voltage1,Voltage2,10)
Adc1Regs.ADCINTFLGCLR.bit.ADCINT1 = 1; //Clear ADCINT1 flag reinitialize
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; // Acknowledge interrupt to PIE
}
void Adc_Read_Results( unsigned int * Adc1,unsigned int * Adc2, Uint16 Num) //Num=10
{ Uint16 i;
for(i=0;i<Num;i++)
{ *( Adc1 +i)= *(&Adc1Result.ADCRESULT0+i);
*( Adc2 +i)= *(&Adc2Result.ADCRESULT0+i);
}
}
Hank Zhao:
回复 suny gong:
2,ADC1和ADC2是并行工作的,你可以给它们配置相同的触发源,就可以同时采样。ADC1和ADC2的中断是共享的,只有都转换结束后才可以进入ADC中断,也就可以一次将这20个通道的数据读完。
TI中文支持网





