Example program for EVAL-ADMX2001

Dependencies:   ADMX2001

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__ */
+/** @} */