Ejemplo n.º 1
0
int main()
{
    /* Place your initialization/startup code here (e.g. MyInst_Start()) */
    ADC_DelSig_Start();
    AMux_Start();
    UART_Start();
    CyGlobalIntEnable; /* Uncomment this line to enable global interrupts. */
   // LCD_Char_Start();
    //status = LCD_SegStat_Start();
    CyDelay(10000u); //10 second delay to allow for sensors to "warm up"
    //uint8 buffer[50];
    //uint8 buffer2[50];
    uint8 value[128];
    for(;;)
    {
        /* Place your application code here. */
        Radiation rad;
        rad = take_radiation_reading();
        Vaisala vais;
        vais = take_Temp_RH_reading();
        //LCD_Char_ClearDisplay();
        //LCD_Char_Position(0u, 0u);
        //sprintf(buffer,"%d %d %d %d", (int)fake.SW_In, (int)fake.SW_Out, (int)fake.LW_In, (int)fake.LW_Out);
        //LCD_Char_PrintString(buffer);
        //LCD_Char_Position(1u, 0u);
        //sprintf(buffer2,"%d %d",(int)fake2.Temp, (int)fake2.RH);
        //LCD_Char_PrintString(buffer2);
        sprintf(value,"%d,%d,%d,%d,%d,%d,%d\r\n",(int)rad.SW_In, (int)rad.SW_Out, (int)rad.LW_In, (int)rad.LW_Out,(int)((rad.temp-273.15)*100),  (int)(vais.Temp*100), (int)(vais.RH*100));
        UART_PutString(value);
        uint8 x = 0;
    }
}
Ejemplo n.º 2
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 */
Ejemplo n.º 3
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;
}