diff options
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.c | 159 |
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*/ - } - } -} - |