Quantcast
Channel: Forums - Recent Threads
Viewing all articles
Browse latest Browse all 262198

CCS: DELTA SIGMA MANAGEMENT WITHOUT INTERRUPT FOR C2000 F2807 PICCOLO

$
0
0

Tool/software: Code Composer Studio

I would like to manage delta sigma module without interrupts.

Thi is my code:

#define MAX_SAMPLES 32 // samples number

// output data buffer
unsigned int Filter1_Result[MAX_SAMPLES]; // filter_1
unsigned int Filter3_Result[MAX_SAMPLES]; // filter_2
unsigned int Filter2_Result[MAX_SAMPLES]; // filter_3
unsigned int Filter4_Result[MAX_SAMPLES]; // filter_4
unsigned int SDELTA_1;

void sigma_delta_read(void); // data reading function

// delta sigma initialization
void sigma_delta_init(void) {

unsigned int i;

    // data buffer initialization
    for(i=0; i<=MAX_SAMPLES-1; i++) {
     Filter1_Result[i] = 1;
     Filter2_Result[i] = 1;
     Filter3_Result[i] = 1;
     Filter4_Result[i] = 1;
    }


    // GPIO pin configuration
    for(i=122; i<=129; i++) {
     GPIO_SetupPinMux(i,GPIO_MUX_CPU1,7);
     GPIO_SetupPinOptions(i, GPIO_INPUT, GPIO_ASYNC);
    }

    // SFDM initializtion and configuration
    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, 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);

 // no external reset
    Sdfm_configureExternalreset(1, FILTER_1_EXT_RESET_DISABLE, FILTER_2_EXT_RESET_DISABLE, FILTER_3_EXT_RESET_DISABLE, FILTER_4_EXT_RESET_DISABLE);

 // no interrupts
    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);
}

// data reading function
void sigma_delta_read(void) {

unsigned long sdfmReadFlagRegister = 0;
static unsigned int loopCounter1 = 0;

 // register SDIFLG reading
 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_SAMPLES) loopCounter1 = 0;

    // clear SDIFLG register
    // Sdfm_clearFlagRegister(1,sdfmReadFlagRegister);

 // register SDIFLG reading
    // sdfmReadFlagRegister = Sdfm_readFlagRegister(1);
}

// running function
void  sigma_delta_run(void) {

 // data reading function
    sigma_delta_read();
}

Is it correct?


Viewing all articles
Browse latest Browse all 262198

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>