Example #1
0
Vaisala take_Temp_RH_reading(){
    uint32 output;
    Vaisala reading2;
    reading2.valid = 0;
    AMux_Select(7);
    ADC_DelSig_SelectConfiguration(ADC_DelSig_CFG2,1);
    ADC_DelSig_StartConvert();
    CyDelay(100u);
    
    uint8 i;
    for(i = 0; i < 100; i++)
    {
        if(ADC_DelSig_IsEndConversion(ADC_DelSig_WAIT_FOR_RESULT))
        {
            output = ADC_DelSig_CountsTo_mVolts(ADC_DelSig_GetResult32());
            reading2.RH = ((float)output)/50;
            reading2.valid = 1;
            break;
        }
        CyDelay(5u);
    }
    ADC_DelSig_StopConvert();
    AMux_Select(6);
    ADC_DelSig_StartConvert();
    CyDelay(100u);
    for(i = 0; i < 100; i++)
    {
        if(ADC_DelSig_IsEndConversion(ADC_DelSig_WAIT_FOR_RESULT))
        {
            output = ADC_DelSig_CountsTo_mVolts(ADC_DelSig_GetResult32());
            reading2.Temp = ((float)output)*120/5000-40;
            reading2.valid = 1 & reading2.valid;
            break;
        }
        CyDelay(5u);
    }
    return reading2;
}
Example #2
0
/******************************************************************************* 
* Function Name: ADC_DelSig_Wakeup
********************************************************************************
*
* Summary:
*  Restores the user configuration and enables the power to the block.
*  
* Parameters:  
*  void
*
* Return: 
*  void
*
* Global variables:
*  ADC_DelSig_backup:  The structure field 'enableState' is used to 
*  restore the enable state of block after wakeup from sleep mode.
*
* Reentrance: 
*  No
*
*******************************************************************************/
void ADC_DelSig_Wakeup(void) 
{
    /* Restore the configuration */
    ADC_DelSig_RestoreConfig();

    /* Enable's the component operation */
    if(ADC_DelSig_backup.enableState == ADC_DelSig_ENABLED)
    {
        ADC_DelSig_Enable();

        /* Start the conversion only if conversion is not triggered by the hardware */
        if(!(ADC_DelSig_DEC_CR_REG & ADC_DelSig_DEC_XSTART_EN))
        {
            ADC_DelSig_StartConvert();
        }

    } /* Do nothing if component was disable before */
}
Example #3
0
/*******************************************************************************
* Function Name: main
********************************************************************************
*
* Summary:
*  Main function performs following functions:
*   1: Enables global interrupts
*   2: Start all components on the schematic
*   3: Calls a function to configure DMA

* Parameters:
*  None.
*
* Return:
*  None.
*
*******************************************************************************/
int main()
{
    /* Start all components used on schematic */
    ADC_DelSig_IRQ_Start();
    //isr_StartEx(filterVDAC);
    ADC_DelSig_Start();
    ADC_DelSig_StartConvert();
    VDAC8_Start();
    //Opamp_Start();
    Filter_Start();

    /* User-implemented function to set-up DMA */
    DMA_Config();

    /* Enable Global Interrupts */
    CYGlobalIntEnable;

    for(;;)
    {
    }
} /* End of main */
Example #4
0
Radiation take_radiation_reading(){
    int32 output;
    uint8 i;
    Radiation reading;
    Thermo RTD;
    AMux_Select(4);
    ADC_DelSig_SelectConfiguration(ADC_DelSig_CFG2,1);
    ADC_DelSig_StartConvert();
    //ADC_DelSig_SelectConfiguration(ADC_DelSig_CFG2,1);
    CyDelay(100u);
    for(i = 0; i < 100; i++)
    {
        if(ADC_DelSig_IsEndConversion(ADC_DelSig_WAIT_FOR_RESULT))
        {
            output = ADC_DelSig_CountsTo_mVolts(ADC_DelSig_GetResult32());
            RTD.sensor = (float)output;
            RTD.sensor_valid = 1;
            break;
        }
        CyDelay(5u);
    }
    ADC_DelSig_StopConvert();
    AMux_Select(5);
    ADC_DelSig_SelectConfiguration(ADC_DelSig_CFG2,1);
    ADC_DelSig_StartConvert();
    //ADC_DelSig_SelectConfiguration(ADC_DelSig_CFG2,1);
    CyDelay(100u);
    for(i = 0; i < 100; i++)
    {
        if(ADC_DelSig_IsEndConversion(ADC_DelSig_WAIT_FOR_RESULT))
        {
            output = ADC_DelSig_CountsTo_mVolts(ADC_DelSig_GetResult32());
            RTD.ref = (float)output;
            RTD.ref_valid = 1;
            break;
        }
        CyDelay(5u);
    }
        
    r = 98*RTD.sensor/RTD.ref;
    reading.temp = GetPt100Temperature(r) + 273.15;//2.5584*r - 255.7 + 273.15; //linear equation from wikipedia table plus 273 to convert to kelvin
    
    ADC_DelSig_Stop();
    AMux_Select(0);
    ADC_DelSig_Start();
    ADC_DelSig_SelectConfiguration(ADC_DelSig_CFG1,1);
    ADC_DelSig_StartConvert();
    CyDelay(100u);
    for(i = 0; i < 100; i++)
    {
        if(ADC_DelSig_IsEndConversion(ADC_DelSig_WAIT_FOR_RESULT))
        {
            output = ADC_DelSig_CountsTo_uVolts(ADC_DelSig_GetResult32());
            reading.SW_In = (float)output/17.53;
            reading.SW_In_valid = 1;
            break;
        }
        CyDelay(5u);
    }
    ADC_DelSig_StopConvert();
    AMux_Select(1);
    ADC_DelSig_StartConvert();
    CyDelay(100u);
    for(i = 0; i < 100; i++)
    {
        if(ADC_DelSig_IsEndConversion(ADC_DelSig_WAIT_FOR_RESULT))
        {
            output = ADC_DelSig_CountsTo_uVolts(ADC_DelSig_GetResult32());
            reading.SW_Out = (float)output/20.69;
            reading.SW_Out_valid = 1;
            break;
        }
        CyDelay(5u);
    }
    ADC_DelSig_StopConvert();
    AMux_Select(2);
    ADC_DelSig_StartConvert();
    CyDelay(100u);
    for(i = 0; i < 100; i++)
    {
        if(ADC_DelSig_IsEndConversion(ADC_DelSig_WAIT_FOR_RESULT))
        {
            output = ADC_DelSig_CountsTo_uVolts(ADC_DelSig_GetResult32());
            reading.LW_In = (float)output/12.95 + .0000000567*reading.temp*reading.temp*reading.temp*reading.temp;
            reading.LW_In_valid = 1;
            break;
        }
        CyDelay(5u);
    }
    ADC_DelSig_StopConvert();
    AMux_Select(3);
    ADC_DelSig_StartConvert();
    CyDelay(100u);
    for(i = 0; i < 100; i++)
    {
        if(ADC_DelSig_IsEndConversion(ADC_DelSig_WAIT_FOR_RESULT))
        {
            output = ADC_DelSig_CountsTo_uVolts(ADC_DelSig_GetResult32());
            reading.LW_Out = (float)output/11.21 + .0000000567*reading.temp*reading.temp*reading.temp*reading.temp;
            reading.LW_Out_valid = 1;
            break;
        }
        CyDelay(5u);
    }
    ADC_DelSig_StopConvert();
    return reading;
}