From 86428716d531d10261170eb990e6f60938e3cfd7 Mon Sep 17 00:00:00 2001 From: Fabien Poussin Date: Mon, 6 Feb 2017 20:09:28 +0100 Subject: Adding COMP Driver. --- os/hal/include/hal_comp.h | 132 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 os/hal/include/hal_comp.h (limited to 'os/hal/include/hal_comp.h') diff --git a/os/hal/include/hal_comp.h b/os/hal/include/hal_comp.h new file mode 100644 index 0000000..045cef0 --- /dev/null +++ b/os/hal/include/hal_comp.h @@ -0,0 +1,132 @@ +/* + ChibiOS - Copyright (C) 2006..2017 Giovanni Di Sirio + Copyright (C) 2017 Fabien Poussin (fabien.poussin (at) google's mail) + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +*/ + +#ifndef HAL_COMP_H_ +#define HAL_COMP_H_ + +#include "hal.h" + + +#if (HAL_USE_COMP == TRUE) || defined(__DOXYGEN__) + +/*===========================================================================*/ +/* Driver constants. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver pre-compile time settings. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Derived constants and error checks. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Driver data structures and types. */ +/*===========================================================================*/ + +/** + * @brief Driver state machine possible states. + */ +typedef enum { + COMP_UNINIT = 0, /**< Not initialized. */ + COMP_STOP = 1, /**< Stopped. */ + COMP_READY = 2, /**< Ready. */ + COMP_ACTIVE = 3, /**< Active cycle phase. */ +} compstate_t; + +/** + * @brief Type of a structure representing an TIMCAP driver. + */ +typedef struct COMPDriver COMPDriver; + + +/** + * @brief TIMCAP notification callback type. + * + * @param[in] comp pointer to a @p COMPDriver object + */ +typedef void (*compcallback_t)(COMPDriver *comp); + +#include "hal_comp_lld.h" + +/*===========================================================================*/ +/* Driver macros. */ +/*===========================================================================*/ + +/** + * @name Macro Functions + * @{ + */ +/** + * @brief Enables the input capture. + * + * @param[in] comp pointer to the @p COMPDriver object + * + * @iclass + */ +#define timcapEnableI(comp) comp_lld_enable(comp) + +/** + * @brief Disables the input capture. + * + * @param[in] comp pointer to the @p COMPDriver object + * + * @iclass + */ +#define timcapDisableI(comp) comp_lld_disable(comp) +/** @} */ + + +/** + * @name Low Level driver helper macros + * @{ + */ + +/** + * @brief Common ISR code, main event. + * + * @param[in] comp pointer to the @p COMPDriver object + * + * @notapi + */ +#define _comp_isr_invoke_cb(comp) { \ + (comp)->config->cb(comp); \ +} +/** @} */ + +/*===========================================================================*/ +/* External declarations. */ +/*===========================================================================*/ + +#ifdef __cplusplus +extern "C" { +#endif + void compInit(void); + void compObjectInit(COMPDriver *comp); + void compStart(COMPDriver *comp, const COMPConfig *config); + void compStop(COMPDriver *comp); + void compEnable(COMPDriver *comp); + void compDisable(COMPDriver *comp); +#ifdef __cplusplus +} +#endif + +#endif /* HAL_USE_COMP */ + + +#endif /* HAL_COMP_H_ */ -- cgit v1.2.3 From 7059c87ab4f237187bab6db709280de3a6b8ea6b Mon Sep 17 00:00:00 2001 From: Fabien Poussin Date: Tue, 7 Feb 2017 10:58:11 +0100 Subject: [COMP] Fixing headers, missing includes. --- os/hal/include/hal_comp.h | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'os/hal/include/hal_comp.h') diff --git a/os/hal/include/hal_comp.h b/os/hal/include/hal_comp.h index 045cef0..835704d 100644 --- a/os/hal/include/hal_comp.h +++ b/os/hal/include/hal_comp.h @@ -50,13 +50,12 @@ typedef enum { } compstate_t; /** - * @brief Type of a structure representing an TIMCAP driver. + * @brief Type of a structure representing an COMP driver. */ typedef struct COMPDriver COMPDriver; - /** - * @brief TIMCAP notification callback type. + * @brief COMP notification callback type. * * @param[in] comp pointer to a @p COMPDriver object */ @@ -79,7 +78,7 @@ typedef void (*compcallback_t)(COMPDriver *comp); * * @iclass */ -#define timcapEnableI(comp) comp_lld_enable(comp) +#define compEnableI(comp) comp_lld_enable(comp) /** * @brief Disables the input capture. @@ -88,7 +87,7 @@ typedef void (*compcallback_t)(COMPDriver *comp); * * @iclass */ -#define timcapDisableI(comp) comp_lld_disable(comp) +#define compDisableI(comp) comp_lld_disable(comp) /** @} */ -- cgit v1.2.3