embeded/Cortex-M3 Ti

ADCHardwareOversampleConfigure()

구차니 2015. 11. 17. 17:26

ADCHardwareOversampleConfigure(ADC0_BASE, 64);

소심하게 2 4 8만 했는데 된다!!! 외쳤는데

실은 2^n 승으로 설정되는게 아니라 실제 배수가 설정되는 ㄷㄷ



void

ADCHardwareOversampleConfigure(unsigned long ulBase, unsigned long ulFactor)

{

    unsigned long ulValue;


    //

    // Check the arguments.

    //

    ASSERT((ulBase == ADC0_BASE) || (ulBase == ADC1_BASE));

    ASSERT(((ulFactor == 0) || (ulFactor == 2) || (ulFactor == 4) ||

           (ulFactor == 8) || (ulFactor == 16) || (ulFactor == 32) ||

           (ulFactor == 64)));


    //

    // Convert the oversampling factor to a shift factor.

    //

    for(ulValue = 0, ulFactor >>= 1; ulFactor; ulValue++, ulFactor >>= 1)

    {

    }


    //

    // Write the shift factor to the ADC to configure the hardware oversampler.

    //

    HWREG(ulBase + ADC_O_SAC) = ulValue;