This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
我想在没有中断的情况下管理 Δ-Σ 模块。
这是我的代码:
#define MAX_SAples 32 //样本数
//输出数据缓冲区
unsigned int filter1_result[MAX_SAamples];// filter_1
unsigned int filter3_result[MAX_SAamples];// filter_2
unsigned int filter2_result[MAX_Samples];// filter_3
unsigned int filter4_result[MAX_SAamples];// filter_4
unsigned int SDELTA_1;
void sigma_delta_read (void);//数据读取函数
// delta sigma 初始化
void sigma_delta_init (void){
unsigned int i;
//数据缓冲区初始化
对于(i=0;i<=MAX_SA采样-1;i++){
filter1_Result[i]= 1;
Filter2_Result[i]= 1;
Filter3_Result[i]= 1;
Filter4_Result[i]= 1;
}
// GPIO 引脚配置
for (i=122;i<=129;i++){
GPIO_SetupPinMux (I、GPIO_MUX_CPU1、7);
GPIO_SetupPinOptions (I、GPIO_INPUT、GPIO_异 步);
}
// SFDM 初始化和配置
Sdfm_configureInputCtrl (1、filter1、mode_0);
Sdfm_configureInputCtrl (1、Filter2、mode_0);
Sdfm_configureInputCtrl (1、FILTER3、MODE_0);
Sdfm_configureInputCtrl (1、FILTER4、MODE_0);
Sdfm_configureComparator (1、filter1、SINC1、OSR_32、2000、 50);
Sdfm_configureComparator (1、Filter2、SINC1、OSR_32、2000、 50);
Sdfm_configureComparator (1、FILTER3、SINC1、OSR_32、2000、 50);
Sdfm_configureComparator (1、FILTER4、SINC1、OSR_32、2000、 50);
Sdfm_configureData_filter (1、filter1、filter1、filter_enable、SINC1、OSR_256、 DATA_16_BIT、SHIFT_9_Bits);
Sdfm_configureData_filter (1、filter2、filter_enable、SINC1、OSR_256、 DATA_16_BIT、SHIFT_9_Bits);
Sdfm_configureData_filter (1、FILTER3、FILTER_ENABLE、SINC1、OSR_256、 DATA_16_BIT、SHIFT_9_Bits);
Sdfm_configureData_filter (1、FILTER4、FILTER_ENABLE、SINC1、OSR_256、 DATA_16_BIT、SHIFT_9_Bits);
Sdfm_enableMFE (1);
//无外部复位
Sdfm_configureExternalreset (1、filter_1_EXT_RESET_disable、filter_2_EXT_RESET_disable、filter_3_EXT_RESET_disable、filter_4_EXT_RESET_disable);
//无中断
Sdfm_configureInterrupt (1、filter1、IEH_DISABLE、IEL_DISABLE、MFIE_DISABLE、 AE_DISABLE);
Sdfm_configureInterrupt (1、Filter2、IEH_DISABLE、IEL_DISABLE、MFIE_DISABLE、 AE_DISABLE);
Sdfm_configureInterrupt (1、FILTER3、IEH_DISABLE、IEL_DISABLE、MFIE_DISABLE、 AE_DISABLE);
Sdfm_configureInterrupt (1、FILTER4、IEH_DISABLE、IEL_DISABLE、MFIE_DISABLE、 AE_DISABLE);
Sdfm_enableMIE (1);
}
//数据读取函数
void sigma_delta_read (void){
unsigned long sdfmReadFlagRegister = 0;
静态无符号 int loopCounter1 = 0;
//寄存器 SDIFLG 读数
SDFMReadFlagRegister = Sdfm_readFlagRegister (1);
filter1_Result[loopCounter1]= SDFM1_READ_filter1_DATA_16BIT;
Filter2_Result[loopCounter1]= SDFM1_READ_Filter2_DATA_16BIT;
Filter3_Result[loopCounter1]= SDFM1_READ_FILTER3_DATA_16BIT;
Filter4_Result[loopCounter1]= SDFM1_READ_FILTER4_DATA_16BIT;
loopCounter1 = loopCounter1 + 1;
if (loopCounter1 = MAX_SAples) loopCounter1 = 0;
//清除 SDIFLG 寄存器
// Sdfm_clearFlagRegister (1、sdfmReadFlagRegister);
//寄存器 SDIFLG 读数
// sdfmReadFlagRegister = Sdfm_readFlagRegister (1);
}
//运行函数
void sigma_delta_run (void){
//数据读取函数
Sigma_Delta_Read ();
}
正确吗?