Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: measure.h
- Revision:
- 5:746e78113d7d
- Child:
- 8:bd0b93e35392
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/measure.h Wed Oct 27 06:58:57 2021 +0000
@@ -0,0 +1,182 @@
+/* Copyright (c) 2021 Analog Devices, Inc. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+ - Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+ - Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions and the following disclaimer in the documentation
+ and/or other materials provided with the distribution.
+ - Modified versions of the software must be conspicuously marked as such.
+ - This software is licensed solely and exclusively for use with processors/products
+ manufactured by or for Analog Devices, Inc.
+ - This software may not be combined or merged with other code in any manner
+ that would cause the software to become subject to terms and conditions which
+ differ from those listed here.
+ - Neither the name of Analog Devices, Inc. nor the names of its contributors
+ may be used to endorse or promote products derived from this software without
+ specific prior written permission.
+ - The use of this software may or may not infringe the patent rights of one or
+ more patent holders. This license does not release you from the requirement
+ that you obtain separate licenses from these patent holders to use this software.
+
+THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
+TITLE, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+NO EVENT SHALL ANALOG DEVICES, INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, PUNITIVE OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, DAMAGES ARISING OUT OF CLAIMS OF INTELLECTUAL
+PROPERTY RIGHTS INFRINGEMENT; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+2021-01-10-7CBSD SLA
+*/
+/**
+ *
+ * @file: measure.h
+ *
+ * @brief: This file contains type definitions and function prototype
+ * for measure.c
+ *
+ * @details: Provides function definitions for impedence and admittance
+ * @defgroup MEASURE Measurement routines
+ *
+ * @{
+ */
+
+#ifndef __MEASURE_H__
+#define __MEASURE_H__
+
+/*============= I N C L U D E S =============*/
+#include <complex.h>
+#include <stdbool.h>
+#include <stdint.h>
+
+/*============= D E F I N E S =============*/
+/** DC resistance frequency */
+#define DC_RESISTANCE_FREQUENCY (0.0)
+/** Min average value */
+#define MIN_AVERAGE 1
+/** Max average value */
+/* FIXME: Need to figure out the exact value */
+#define MAX_AVERAGE 65536
+/** Size of measurement buffer */
+/** FIFO Size / 2 */
+#define MEASUREMENT_BUFFER_SIZE 256
+/** Min sample count value */
+#define MIN_SAMPLE_COUNT 1
+/** Max sample count value */
+#define MAX_SAMPLE_COUNT 255
+/** Min display mode value */
+#define MIN_DISP_MODE 0
+/** Max display mode value */
+#define MAX_DISP_MODE 18
+/** Number of sweep scales */
+#define NUM_SCALES 2
+/** Number of sweep types */
+#define NUM_TYPES 4
+
+/**
+ * Type of resistance modes
+ */
+typedef enum
+{
+ /** DC resistance mode */
+ DC_RESISTANCE_MODE,
+ /** AC resistance mode */
+ AC_RESISTANCE_MODE
+} RESISTANCE_MODE;
+/**
+ * Type of sweep type
+ */
+typedef enum
+{
+ SWEEP_TYPE_NONE,
+ SWEEP_TYPE_FREQUENCY,
+ SWEEP_TYPE_OFFSET,
+ SWEEP_TYPE_MAG
+} SWEEP_TYPE;
+
+/**
+ * Type of sweep scale
+ */
+typedef enum
+{
+ SWEEP_SCALE_LINEAR,
+ SWEEP_SCALE_LOG
+} SWEEP_SCALE;
+
+/**
+ * Type of measurement mode
+ */
+typedef enum
+{
+ MEASM_MODE_IMPEDANCE,
+ MEASM_MODE_ADMITTANCE
+
+} MEASM_MODE;
+
+/**
+ * Impedance correction mode
+ */
+typedef enum
+{
+ CORRECTION_MODE_NONE,
+ CORRECTION_MODE_CAL,
+ CORRECTION_MODE_COMP
+} CORRECTION_MODE;
+
+/** display types */
+typedef enum
+{
+ RS_CS,
+ CS_D,
+ CS_Q,
+ LS_RS,
+ LS_D,
+ LS_Q,
+ R_X,
+ Z_PHASE_DEG,
+ Z_PHASE_RAD,
+ CP_RP,
+ CP_D,
+ CP_Q,
+ LP_RP,
+ LP_D,
+ LP_Q,
+ G_B,
+ Y_PHASE_DEG,
+ Y_PHASE_RAD,
+ DISPLAY_MODE_NONE
+} DISPLAY_MODE;
+
+/*============= D A T A T Y P E S =============*/
+
+/**
+ * adicomplex
+ * Complex DataType
+ */
+typedef _Complex adicomplex;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+ /*============= F U N C T I O N P R O T O T Y P E S =============*/
+
+ /**
+ * @details Measures impedance based on configured attributes
+ * @return 0 - Success 1 - Failed
+ */
+ int32_t TriggerAndMeasure();
+
+ void PrintMeasureStatusMessage(int32_t status);
+#ifdef __cplusplus
+}
+#endif
+#endif /* __MEASURE_H__ */
+/** @} */
