Ultrasound timeout demo
Dependencies: F7_Ethernet HCSR04 MQTT mbed
Fork of Nucleo_F746ZG_Ethernet by
RtosTimer.h
00001 /* mbed Microcontroller Library 00002 * Copyright (c) 2006-2012 ARM Limited 00003 * 00004 * Permission is hereby granted, free of charge, to any person obtaining a copy 00005 * of this software and associated documentation files (the "Software"), to deal 00006 * in the Software without restriction, including without limitation the rights 00007 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 00008 * copies of the Software, and to permit persons to whom the Software is 00009 * furnished to do so, subject to the following conditions: 00010 * 00011 * The above copyright notice and this permission notice shall be included in 00012 * all copies or substantial portions of the Software. 00013 * 00014 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 00015 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 00016 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 00017 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 00018 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 00019 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 00020 * SOFTWARE. 00021 */ 00022 #ifndef RTOS_TIMER_H 00023 #define RTOS_TIMER_H 00024 00025 #include <stdint.h> 00026 #include "cmsis_os.h" 00027 00028 namespace rtos { 00029 00030 /** The RtosTimer class allow creating and and controlling of timer functions in the system. 00031 A timer function is called when a time period expires whereby both on-shot and 00032 periodic timers are possible. A timer can be started, restarted, or stopped. 00033 00034 Timers are handled in the thread osTimerThread. 00035 Callback functions run under control of this thread and may use CMSIS-RTOS API calls. 00036 */ 00037 class RtosTimer { 00038 public: 00039 /** Create and Start timer. 00040 @param task name of the timer call back function. 00041 @param type osTimerOnce for one-shot or osTimerPeriodic for periodic behaviour. (default: osTimerPeriodic) 00042 @param argument argument to the timer call back function. (default: NULL) 00043 */ 00044 RtosTimer(void (*task)(void const *argument), 00045 os_timer_type type=osTimerPeriodic, 00046 void *argument=NULL); 00047 00048 /** Stop the timer. 00049 @return status code that indicates the execution status of the function. 00050 */ 00051 osStatus stop(void); 00052 00053 /** start a timer. 00054 @param millisec time delay value of the timer. 00055 @return status code that indicates the execution status of the function. 00056 */ 00057 osStatus start(uint32_t millisec); 00058 00059 ~RtosTimer(); 00060 00061 private: 00062 osTimerId _timer_id; 00063 osTimerDef_t _timer; 00064 #if defined(CMSIS_OS_RTX) && !defined(__MBED_CMSIS_RTOS_CM) 00065 uint32_t _timer_data[5]; 00066 #else 00067 uint32_t _timer_data[6]; 00068 #endif 00069 }; 00070 00071 } 00072 00073 #endif
Generated on Tue Aug 2 2022 04:13:39 by 1.7.2