summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/acc.c
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/arm/atsam/libraries/libchip/source/acc.c')
-rw-r--r--c/src/lib/libbsp/arm/atsam/libraries/libchip/source/acc.c159
1 files changed, 0 insertions, 159 deletions
diff --git a/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/acc.c b/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/acc.c
deleted file mode 100644
index 694142bda3..0000000000
--- a/c/src/lib/libbsp/arm/atsam/libraries/libchip/source/acc.c
+++ /dev/null
@@ -1,159 +0,0 @@
-/* ---------------------------------------------------------------------------- */
-/* Atmel Microcontroller Software Support */
-/* SAM Software Package License */
-/* ---------------------------------------------------------------------------- */
-/* Copyright (c) 2015, Atmel Corporation */
-/* */
-/* All rights reserved. */
-/* */
-/* Redistribution and use in source and binary forms, with or without */
-/* modification, are permitted provided that the following condition is met: */
-/* */
-/* - Redistributions of source code must retain the above copyright notice, */
-/* this list of conditions and the disclaimer below. */
-/* */
-/* Atmel's name may not be used to endorse or promote products derived from */
-/* this software without specific prior written permission. */
-/* */
-/* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR */
-/* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
-/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */
-/* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, */
-/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
-/* LIMITED TO, 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. */
-/* ---------------------------------------------------------------------------- */
-
-/** \addtogroup acc_module Working with ACC
- * \ingroup peripherals_module
- * The ACC driver provides the interface to configure and use the ACC
- * peripheral.\n
- *
- * It applies comparison on two inputs and gives a compare output.
- *
- * To Enable a ACC Comparison,the user has to follow these few steps:
- * <ul>
- * <li> Enable ACC peripheral clock by setting the corresponding bit in
- * PMC_PCER1 (PMC Peripheral Clock Enable Register 1)
- * </li>
- * <li> Reset the controller by asserting ACC_CR_SWRST in ACC_CR(ACC Control
- * Register) </li>
- * <li> Configure the mode as following steps: </li>
- * -# Select inputs for SELMINUS and SELPLUS in ACC_MR (ACC Mode Register).
- * -# Enable Analog Comparator by setting ACEN in ACC_MR.
- * -# Configure Edge Type to detect different compare output.
- * </li>
- * <li> Wait until the automatic mask period expires by polling MASK bit in
- * ACC_ISR.
- * </ul>
- *
- * For more accurate information, please look at the ACC section of the
- * Datasheet.
- *
- * Related files :\n
- * \ref acc.c\n
- * \ref acc.h\n
- */
-/*@{*/
-/*@}*/
-/**
- * \file
- *
- * Implementation of Analog Comparator Controller (ACC).
- *
- */
-/*----------------------------------------------------------------------------
- * Headers
- *----------------------------------------------------------------------------*/
-
-#include "chip.h"
-#include "acc.h"
-
-/*----------------------------------------------------------------------------
- * Exported functions
- *----------------------------------------------------------------------------*/
-
-/**
- * \brief Initialize the ACC controller
- *
- * \param pAcc Pointer to an Acc instance.
- * \param idAcc ACC identifier
- * \param ucSelplus input connected to inp, 0~7
- * \param ucSelminus input connected to inm,0~7
- * \param wAc_en Analog comparator enabled/disabled
- * \param wEdge CF flag triggering mode
- * \param wInvert INVert comparator output,use pattern defined in the device
- * header file
- */
-extern void ACC_Configure(Acc *pAcc, uint8_t idAcc, uint8_t ucSelplus,
- uint8_t ucSelminus, uint16_t wAc_en, uint16_t wEdge, uint16_t wInvert)
-{
- /* Enable peripheral clock*/
- PMC->PMC_PCER1 = 1 << (idAcc - 32);
-
- /* Reset the controller */
- pAcc->ACC_CR |= ACC_CR_SWRST;
-
- /* Write to the MR register */
- ACC_CfgModeReg(pAcc,
- ((ucSelplus << ACC_MR_SELPLUS_Pos) & ACC_MR_SELPLUS_Msk) |
- ((ucSelminus << ACC_MR_SELMINUS_Pos) & ACC_MR_SELMINUS_Msk) |
- ((wAc_en << 8) & ACC_MR_ACEN) |
- ((wEdge << ACC_MR_EDGETYP_Pos) & ACC_MR_EDGETYP_Msk) |
- ((wInvert << 12) & ACC_MR_INV));
- /* set hysteresis and current option*/
- pAcc->ACC_ACR = (ACC_ACR_ISEL_HISP
- | ((0x01 << ACC_ACR_HYST_Pos) & ACC_ACR_HYST_Msk));
-
- /* Automatic Output Masking Period*/
- while (pAcc->ACC_ISR & (uint32_t)ACC_ISR_MASK);
-}
-
-/**
- * Return the Channel Converted Data
- * \param pAcc Pointer to an Acc instance.
- * \param ucSelplus input applied on ACC SELPLUS
- * \param ucSelminus input applied on ACC SELMINUS
- */
-extern void ACC_SetComparisonPair(Acc *pAcc, uint8_t ucSelplus,
- uint8_t ucSelminus)
-{
- uint32_t dwTemp;
-
- assert(ucSelplus < 8 && ucSelminus < 8);
-
- dwTemp = pAcc->ACC_MR;
- pAcc->ACC_MR =
- dwTemp & (uint32_t) ((~ACC_MR_SELMINUS_Msk) & (~ACC_MR_SELPLUS_Msk));
-
- pAcc->ACC_MR |= (((ucSelplus << ACC_MR_SELPLUS_Pos) & ACC_MR_SELPLUS_Msk) |
- ((ucSelminus << ACC_MR_SELMINUS_Pos) & ACC_MR_SELMINUS_Msk));
-}
-
-/**
- * Return Comparison Result
- * \param pAcc Pointer to an Acc instance.
- * \param dwStatus value of ACC_ISR
- */
-extern uint32_t ACC_GetComparisonResult(Acc *pAcc, uint32_t dwStatus)
-{
- uint32_t dwTemp = pAcc->ACC_MR;
-
- if ((dwTemp & ACC_MR_INV) == ACC_MR_INV) {
- if (dwStatus & ACC_ISR_SCO) {
- return 0; /* inn>inp*/
- } else {
- return 1;/* inp>inn*/
- }
- } else {
- if (dwStatus & ACC_ISR_SCO) {
- return 1; /* inp>inn*/
- } else {
- return 0;/* inn>inp*/
- }
- }
-}
-