Пример #1
0
void makeTimer(uint32_t period, SYSTM001_TimerType TimerType, SYSTM001_TimerCallBackPtr TimerCallBack, void *pCallBackArgPtr, uint32_t *status, handle_t *timerID)
{
	*timerID = SYSTM001_CreateTimer(period,TimerType,TimerCallBack,NULL);

	if(*timerID != 0)
	{
		*status = SYSTM001_StartTimer(*timerID);
	}
}
Пример #2
0
Файл: util.c Проект: Snafu/rc
void wait(unsigned int ms)
{
	handle_t handle;
	handle = SYSTM001_CreateTimer(ms, SYSTM001_ONE_SHOT, DelayHandler, NULL);
	delayExpired = FALSE;
	if(handle)
		(void) SYSTM001_StartTimer(handle);
	while(!delayExpired);
	(void) SYSTM001_DeleteTimer(handle);
}
void manageConnection(void)
{
	if(getStatusMainTimer())
	{
		removeMainTimer();
		setStatusMainTimer(FALSE);
		stageOfConnection = 1;
	}

	if(1 == stageOfConnection)
	{
		TimerIdRxMessage = SYSTM001_CreateTimer(200,SYSTM001_PERIODIC,RxTimerHandler,NULL);
		SYSTM001_StartTimer(TimerIdRxMessage);
		stageOfConnection = 0;
	}
}
Пример #4
0
void timerHandler(void *T)
{
	char *command1 = commandsInitBt[stageOfInitializationBt];
	volatile int length = strlen(command1);

	send(command1, length);

	while((UART001_GetFlagStatus(&UART001_Handle0,UART001_TRANSFER_STATUS_BUSY_FLAG )==UART001_SET))
	{
		int h = 0;
	}
	l++;
	//potem trzeba poprosic od przes³anie odpowiedzi przez RTS
	askAboutSending();
	TimerIdReceive = SYSTM001_CreateTimer(200,SYSTM001_ONE_SHOT,timerReceiveHandler,NULL);
	if(TimerIdReceive != 0)
	{
		StatusReceive = SYSTM001_StartTimer(TimerIdReceive);
	}
}
void timerHandlerInitBluetooth(void *T)
{
	static uint8_t whichCommand = 0;

	commandsAndAnswers *temp = (commandsAndAnswers*)T;

	if(removeInitTimerRx == TRUE)
	{
		SYSTM001_DeleteTimer(HandlTimerReceiveAnsID);
		HandlTimerReceiveAnsID = 0;
		removeInitTimerRx = FALSE;
		whichCommand = stageOfInit;
	}

	if(TRUE == initStatus)
	{
		removeMainTimerStatus = TRUE;
	}

	if(FALSE == initStatus && canSend == TRUE)
	{
		//whichCommand = stageOfInit;
		volatile int length = strlen(temp->commandsBluetooth[whichCommand]);

		send(temp->commandsBluetooth[whichCommand], length);

		while((UART001_GetFlagStatus(&UART001_Handle0,UART001_TRANSFER_STATUS_BUSY_FLAG )==UART001_SET))
		{
			int h = 0;
		}

		canSend = FALSE;
		askAboutSending();
		HandlTimerReceiveAnsID = SYSTM001_CreateTimer(300,SYSTM001_ONE_SHOT,timerHandlerInitBluetoothReceive,NULL);
		SYSTM001_StartTimer(HandlTimerReceiveAnsID);
	}
}
void startMeasurements1(void)
{
	TimerIdReadMeasurements=SYSTM001_CreateTimer(READING_DELAY,SYSTM001_PERIODIC,timerHandlerReceiveOneMeasurementEachSensor1,&adrAndData);
	SYSTM001_StartTimer(TimerIdReadMeasurements);
}
Пример #7
0
float readHumidity(void)
{
	if(canH)
	{
		canH = 0;
		I2C001_DataType data1;
		data1.Data1.TDF_Type = I2C_TDF_MStart;
		data1.Data1.Data = ((HTDU21D_ADDRESS << 1) | I2C_WRITE);
		I2C001_WriteData(&I2C001_Handle1,&data1);

		delay11(DELAY);

		I2C001_DataType data2;
		data2.Data1.TDF_Type = I2C_TDF_MTxData;
		data2.Data1.Data = TRIGGER_HUMD_MEASURE_NOHOLD;
		I2C001_WriteData(&I2C001_Handle1,&data2);

		delay11(DELAY);

		if(timerHumidOn == 0)
		{
			TimerRdHumid = SYSTM001_CreateTimer(55, SYSTM001_PERIODIC, readHumidTimerHandler, NULL);
			SYSTM001_StartTimer(TimerRdHumid);
			timerHumidOn = 1;
		}

		while(TRUE)
		{
			if(errorCounter > 3)
			{
				errorCounter = 0;
				SYSTM001_StopTimer(TimerRdHumid);
				SYSTM001_DeleteTimer(TimerRdHumid);
				TimerRdHumid = 0;
				timerHumidOn = 0;
				canH = 1;
				return 998;
			}
			else if(1 == wrong_checksum)
			{
				wrong_checksum = 0;
				SYSTM001_StopTimer(TimerRdHumid);
				SYSTM001_DeleteTimer(TimerRdHumid);
				TimerRdHumid = 0;
				timerHumidOn = 0;
				canH = 1;
				return 999;
			}
			else if(1 == readHumid)
			{
				readHumid = 0;
				SYSTM001_StopTimer(TimerRdHumid);
				SYSTM001_DeleteTimer(TimerRdHumid);
				TimerRdHumid = 0;
				timerHumidOn = 0;
				canH = 1;
				break;
			}
		}
	}
	return rh;
}
Пример #8
0
int main(void)
{
//	status_t status;		// Declaration of return variable for DAVE3 APIs (toggle comment if required)


	DAVE_Init();			// Initialization of DAVE Apps


	int counter = 0;
	handle_t TimerId;
	uint32_t Status = SYSTM001_ERROR;

	addressAndData adrAndData;
	adrAndData.adr.addressDevice[0] = 0x6B;
	adrAndData.adr.addressDevice[1] = 0x1E;
	adrAndData.adr.subAddress[0] =  OUT_X_L_XL; //subaddres for accel
	adrAndData.adr.subAddress[1] =  OUT_X_L_G; //sub address for gyroscope
	adrAndData.adr.subAddress[2] =  OUT_X_L_M;

	initLSM9DS1();
	calibrate(TRUE);

	//readAccel1();
	//makeTimer(100, SYSTM001_PERIODIC, timerHandlerReadByte1, &a, &Status, &TimerId);
	TimerId=SYSTM001_CreateTimer(2,SYSTM001_PERIODIC,timerHandlerReadByte1,&adrAndData);
	SYSTM001_StartTimer(TimerId);
	while(1)
	{
		if(!readingAllowed)
		{

			int16_t accelX = (adrAndData.dane[1] << 8) | adrAndData.dane[0]; // Store x-axis values into gx

			int16_t accelY = (adrAndData.dane[3] << 8) | adrAndData.dane[2]; // Store y-axis values into gy

			int16_t accelZ = (adrAndData.dane[5] << 8) | adrAndData.dane[4]; // Store z-axis values into gz

			if (_autoCalc) //kalibracja
			{
				accelX -= aBiasRaw[X_AXIS];
				accelX -= aBiasRaw[Y_AXIS];
				accelX -= aBiasRaw[Z_AXIS];
			}

			accelX = calcAccel(accelX);
			accelY = calcAccel(accelY);
			accelZ = calcAccel(accelZ);

			pomiary[counter].ax = accelX;
			pomiary[counter].ay = accelY;
			pomiary[counter].az = accelZ;

			int16_t gyroX = (adrAndData.dane[7] << 1) | adrAndData.dane[6];
			int16_t gyroY = (adrAndData.dane[9] << 1) | adrAndData.dane[8];
			int16_t gyroZ = (adrAndData.dane[11] << 1) | adrAndData.dane[10];

			if (_autoCalc) //kalibracja
			{
				gyroX -= gBiasRaw[X_AXIS];
				gyroY -= gBiasRaw[Y_AXIS];
				gyroZ -= gBiasRaw[Z_AXIS];
			}
			gyroX = calcGyro(gyroX);
			gyroY = calcGyro(gyroY);
			gyroZ = calcGyro(gyroZ);

			pomiary1[counter].ax = gyroX;
			pomiary1[counter].ay = gyroY;
			pomiary1[counter].az = gyroZ;
			counter++;
			readingAllowed = TRUE;
		}

		if(counter >= 100)
		{
			counter = 0;
		}

	}
	return 0;
}
void createReceiveTimer(void)
{
	TimerIdRxMessage = SYSTM001_CreateTimer(200,SYSTM001_PERIODIC,RxTimerHandler,NULL);
	SYSTM001_StartTimer(TimerIdRxMessage);
}
void createMainTimer(void)
{
	mainInitTimerID = SYSTM001_CreateTimer(1000,SYSTM001_PERIODIC,timerHandlerInitBluetooth,&initCommandsAnswer);
	mainInitTimerStatus = SYSTM001_StartTimer(mainInitTimerID);
}