blob: ac1b5f2f436c7a3385bab545daaf8f71585ff4d1 [file] [log] [blame]
/************************************************************************************
* Copyright (c) 2016 fortiss GmbH
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Milan Vathoopan, Guru Chandrasekhara - initial API and implementation and/or initial documentation
************************************************************************************/
#include "../../core/devexec.h"
#include "fortenew.h"
#include "freertostiha.h"
CTimerHandler* CTimerHandler::createTimerHandler(CDeviceExecution& paDeviceExecution){
return new CFreeRTOSTimerHandler(paDeviceExecution);
}
CFreeRTOSTimerHandler::CFreeRTOSTimerHandler(CDeviceExecution& paDeviceExecution) : CTimerHandler(paDeviceExecution) {
mTimer = xTimerCreate("FORTETimer",
pdMS_TO_TICKS (1000 / getTicksPerSecond()),
pdTRUE, ( void * ) this, vCallbackFunction);
}
CFreeRTOSTimerHandler::~CFreeRTOSTimerHandler(){
disableHandler();
xTimerDelete(mTimer, 0);
}
void CFreeRTOSTimerHandler::enableHandler(void){
xTimerStart(mTimer,0);
}
void CFreeRTOSTimerHandler::disableHandler(void){
xTimerStop(mTimer,0);
}
void CFreeRTOSTimerHandler::setPriority(int paPriority){
}
int CFreeRTOSTimerHandler::getPriority(void) const{
return 1;
}
void CFreeRTOSTimerHandler::vCallbackFunction(TimerHandle_t paTimer){
static_cast<CFreeRTOSTimerHandler*>(paTimer)->nextTick();
}