Sensor
硬件
從下圖原理圖中可以看出,3個sensor掛在I2C0,3個sensor掛在I2C1.
程序如何處理Sensor的數據採集
HEXIWEAR_startup—>
sensor_Init—>
OSA_TaskCreate (sensor_GetData, —>
/**
* retrieve(取回) data from various sensors
* @param param task parameter, currently unused
*/
static void sensor_GetData( task_param_t param )
{
/**
* read, format and insert data into the packet
*/
switch ( sensorToSend )
{
/**
* Battery level
*/
case packetType_batteryLevel:
{
}
}
/** blink a LED if needed */
if ( SEND_NO != isReadyToSend )
{
}
/**
* finish with packet formation and push the packet
*/
switch( isReadyToSend )
{
case SEND_YES:
// format data
// add trailer byte, denoting the packet end
// push data
// wait
// goto next sensor
NextSensor(sensorToSend);
break;
}
}
sensor_driver.c 中:
sensor_GetData通過NextSensor(sensorToSend);輪詢各個sensor;
switch ( sensorToSend )中各個case對應不同sensor,通過調用各個模塊的驅動函數來讀取相應sensor數據。