Пример #1
0
int main( void )
{  
    //set the length of the queues -> how many items the queue can hold
    const unsigned portBASE_TYPE measurementQueueLength = 5;
    //const unsigned portBASE_TYPE statusQueueLength = 5;
    
    xQueueHandle measurementQueue;
    //xQueueHandle statusQueue;
   
	// ...for temperature and pressure sensor
	double temperature = 0;
	int32_t pressure = 0;
    double altitude = 0;

   
    
    //configure time measurment pin as output
    //DDRD |= (1<<PB7);
    

    bmp085_init();
        
    while( 1 )
    {
        temperature = bmp085_gettemperature();
        //pressure = bmp085_getpressure();
        //altitude = bmp085_getaltitude();
        //altitude = bmp085CalcAltitude ( pressure );
        //_delay_ms(100);
    }

	//prvIncrementResetCount();
    
    //create queues for intertask communication
    measurementQueue = xQueueCreate( measurementQueueLength, ( unsigned portBASE_TYPE ) sizeof( measurementQueueMsg * ) );
    //statusQueue = xQueueCreate( statusQueueLength, ( unsigned portBASE_TYPE ) sizeof( statusQueueMsg * ) );
        
	/* Create the tasks. */
    startCommunicationTask( mainCOMMUNICATION_TASK_PRIORITY, &measurementQueue );
    startNavigatorTask( mainNAVIGATOR_TASK_PRIORITY, &measurementQueue );
    startOperatorTask( mainOPERATOR_TASK_PRIORITY, &measurementQueue );
	startSensorTask( mainSENSOR_TASK_PRIORITY, &measurementQueue);
	
	/* In this port, to use preemptive scheduler define configUSE_PREEMPTION 
	as 1 in portmacro.h.  To use the cooperative scheduler define 
	configUSE_PREEMPTION as 0. */
	vTaskStartScheduler();

	return 0;
}
Пример #2
0
/*
Summarization of all Sensor Readouts + RTC
*/
void Get_Weather_Data()
{
if (issetup==0)
	ds1307_getdate(&time[0], &time[1], &time[2], &time[3], &time[4], &time[5]);			
	if (my_state == DISP_TEMP) weather.temp = bmp085_gettemperature()-2.4;			//Calibration	
	if (my_state == DISP_PRESS)														//problem with i2c Communication, if temperature and pressure are readout after each other => bljad
	{
		weather.pres = bmp085_getpressure();
		weather.pres = (weather.pres/100000)+0.16;									//Calibration
	}
	//weather.hum = Get_Hum();
	weather.lux = Get_Light();
	
	
}