Official mbed Real Time Operating System based on the RTX implementation of the CMSIS-RTOS API open standard.

Fork of mbed-rtos by mbed official

rtos/RtosTimer.cpp

Committer:
emilmont
Date:
2012-11-23
Revision:
6:350b53afb889
Child:
8:88a1a9c26ae3

File content as of revision 6:350b53afb889:

#include "RtosTimer.h"

#include <string.h>

#include "cmsis_os.h"
#include "error.h"

namespace rtos {

RtosTimer::RtosTimer(void (*periodic_task)(void const *argument), os_timer_type type, void *argument) {
#ifdef CMSIS_OS_RTX
    _timer.ptimer = periodic_task;
    
    memset(_timer_data, 0, sizeof(_timer_data));
    _timer.timer = _timer_data;
#endif
    _timer_id = osTimerCreate(&_timer, type, argument);
}

osStatus RtosTimer::start(uint32_t millisec) {
    return osTimerStart(_timer_id, millisec);
}

osStatus RtosTimer::stop(void) {
    return osTimerStop(_timer_id);
}

RtosTimer::~RtosTimer() {
    osTimerDelete(_timer_id);
}

}