| PDL for FM0+ Version1.0 Peripheral Driverl Library for FM0+

- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

C:/pdl_v10/library/driver/mft/mft_adcmp.h
Go to the documentation of this file.

    00001 /*******************************************************************************
    00002 * Copyright (C) 2013 Spansion LLC. All Rights Reserved.
    00003 *
    00004 * This software is owned and published by:
    00005 * Spansion LLC, 915 DeGuigne Dr. Sunnyvale, CA  94088-3453 ("Spansion").
    00006 *
    00007 * BY DOWNLOADING, INSTALLING OR USING THIS SOFTWARE, YOU AGREE TO BE BOUND
    00008 * BY ALL THE TERMS AND CONDITIONS OF THIS AGREEMENT.
    00009 *
    00010 * This software contains source code for use with Spansion
    00011 * components. This software is licensed by Spansion to be adapted only
    00012 * for use in systems utilizing Spansion components. Spansion shall not be
    00013 * responsible for misuse or illegal use of this software for devices not
    00014 * supported herein.  Spansion is providing this software "AS IS" and will
    00015 * not be responsible for issues arising from incorrect user implementation
    00016 * of the software.
    00017 *
    00018 * SPANSION MAKES NO WARRANTY, EXPRESS OR IMPLIED, ARISING BY LAW OR OTHERWISE,
    00019 * REGARDING THE SOFTWARE (INCLUDING ANY ACOOMPANYING WRITTEN MATERIALS),
    00020 * ITS PERFORMANCE OR SUITABILITY FOR YOUR INTENDED USE, INCLUDING,
    00021 * WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, THE IMPLIED
    00022 * WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE OR USE, AND THE IMPLIED
    00023 * WARRANTY OF NONINFRINGEMENT.
    00024 * SPANSION SHALL HAVE NO LIABILITY (WHETHER IN CONTRACT, WARRANTY, TORT,
    00025 * NEGLIGENCE OR OTHERWISE) FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT
    00026 * LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION,
    00027 * LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS) ARISING FROM USE OR
    00028 * INABILITY TO USE THE SOFTWARE, INCLUDING, WITHOUT LIMITATION, ANY DIRECT,
    00029 * INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES OR LOSS OF DATA,
    00030 * SAVINGS OR PROFITS,
    00031 * EVEN IF SPANSION HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
    00032 * YOU ASSUME ALL RESPONSIBILITIES FOR SELECTION OF THE SOFTWARE TO ACHIEVE YOUR
    00033 * INTENDED RESULTS, AND FOR THE INSTALLATION OF, USE OF, AND RESULTS OBTAINED
    00034 * FROM, THE SOFTWARE.
    00035 *
    00036 * This software may be replicated in part or whole for the licensed use,
    00037 * with the restriction that this Disclaimer and Copyright notice must be
    00038 * included with each copy of this software, whether used in part or whole,
    00039 * at all times.
    00040 */
    00041 /******************************************************************************/
    00051 #ifndef __MFT_ADCMP_H__
    00052 #define __MFT_ADCMP_H__
    00053
    00054 /******************************************************************************/
    00055 /* Include files                                                              */
    00056 /******************************************************************************/
    00057 #include "mcu.h"
    00058 #include "pdl_user.h"
    00059
    00060 #if (defined(PDL_PERIPHERAL_MFT_ADCMP_ACTIVE))
    00061
    00126 /******************************************************************************/
    00127 /* Global pre-processor symbols/macros ('#define')                            */
    00128 /******************************************************************************/
    00129
    00130 #define  MFT_ADCMP_CH0             0
    00131 #define  MFT_ADCMP_CH1             1
    00132 #define  MFT_ADCMP_CH2             2
    00133 #define  MFT_ADCMP_CH3             3
    00134 #define  MFT_ADCMP_CH4             4
    00135 #define  MFT_ADCMP_CH5             5
    00136
    00137 #define  MFT_ADCMP_CH10            0
    00138 #define  MFT_ADCMP_CH32            1
    00139 #define  MFT_ADCMP_CH54            2
    00140
    00141 #define  MFT_ADCMP_CH_MAX         5
    00142 #define  MFT_ADCMP_CPCH_MAX       2
    00143 /******************************************************************************
    00144  * Global type definitions
    00145  ******************************************************************************/
    00146 #define stc_mftn_adcmp_t   FM0P_MFT_ADCMP_TypeDef
    00147
    00148 #define MFT0_ADCMP  (*(volatile stc_mftn_adcmp_t *) FM0P_MFT0_ADCMP_BASE)
    00149 #define MFT1_ADCMP  (*(volatile stc_mftn_adcmp_t *) FM0P_MFT1_ADCMP_BASE)
    00150 #define MFT2_ADCMP  (*(volatile stc_mftn_adcmp_t *) FM0P_MFT2_ADCMP_BASE)
    00151
    00156 typedef enum en_adcmp_frt
    00157 {
    00158     Frt0ToAdcmp    = 0,
    00159     Frt1ToAdcmp    = 1,
    00160     Frt2ToAdcmp    = 2,
    00161     AdcmpFrtToExt0 = 3,
    00162     AdcmpFrtToExt1 = 4,
    00163
    00164 }en_adcmp_frt_t;
    00165
    00170 typedef enum en_adcmp_fm3_frt
    00171 {
    00172     Frt1ToAdcmpFm3    = 1,
    00173     Frt2ToAdcmpFm3    = 2,
    00174
    00175 }en_adcmp_fm3_frt_t;
    00176
    00181 typedef enum en_adcmp_buf
    00182 {
    00183     AdcmpBufDisable     = 0,
    00184     AdcmpBufFrtZero     = 1,
    00185     AdcmpBufFrtPeak     = 2,
    00186     AdcmpBufFrtZeroPeak = 3,
    00187
    00188 }en_adcmp_buf_t;
    00189
    00194 typedef enum en_adcmp_trig_channel
    00195 {
    00196     AdcmpStartTrig0 = 0,
    00197     AdcmpStartTrig1 = 1,
    00198     AdcmpStartTrig2 = 2,
    00199     AdcmpStartTrig3 = 3,
    00200     AdcmpStartTrig4 = 4,
    00201     AdcmpStartTrig5 = 5,
    00202     AdcmpStartTrig6 = 6,
    00203     AdcmpStartTrig7 = 7,
    00204
    00205 }en_adcmp_start_trig_t;
    00210 typedef enum en_adcmp_trig_sel
    00211 {
    00212     AdcmpTrigAdc0Scan = 0,
    00213     AdcmpTrigAdc0Prio = 1,
    00214     AdcmpTrigAdc1Scan = 2,
    00215     AdcmpTrigAdc1Prio = 3,
    00216     AdcmpTrigAdc2Scan = 4,
    00217     AdcmpTrigAdc2Prio = 5,
    00218
    00219 }en_adcmp_trig_sel_t;
    00224 typedef enum en_adcmp_mode
    00225 {
    00226     AdcmpNormalMode = 0,
    00227     AdcmpOffsetMode = 1,
    00228
    00229 }en_adcmp_mode_t;
    00234 typedef enum en_adcmp_occp_sel
    00235 {
    00236     AdcmpSelOccp0 = 0,
    00237     AdcmpSelOccp1 = 1,
    00238
    00239 }en_adcmp_occp_sel_t;
    00244 typedef struct stc_mft_adcmp_config
    00245 {
    00246     en_adcmp_frt_t        enFrt;
    00247     en_adcmp_buf_t        enBuf;
    00248     en_adcmp_trig_sel_t   enTrigSel;
    00249     en_adcmp_mode_t       enMode;
    00250     en_adcmp_occp_sel_t   enOccpSel;
    00251
    00252 }stc_mft_adcmp_config_t;
    00257 typedef struct stc_mft_adcmp_func
    00258 {
    00259     boolean_t   bDownEn;
    00260     boolean_t   bPeakEn;
    00261     boolean_t   bUpEn;
    00262     boolean_t   bZeroEn;
    00263
    00264 }stc_mft_adcmp_func_t;
    00269 typedef enum en_adcmp_fm3_mode
    00270 {
    00271     AdcmpFm3AccpUpAccpDown   = 0,
    00272     AdcmpFm3AccpUp           = 1,
    00273     AdcmpFm3AccpDown         = 2,
    00274     AdcmpFm3AccpUpAccpdnDown = 3,
    00275
    00276 }en_adcmp_fm3_mode_t;
    00281 typedef struct stc_mft_adcmp_fm3_config
    00282 {
    00283     en_adcmp_fm3_frt_t     enFrt;
    00284     en_adcmp_fm3_mode_t    enMode;
    00285     en_adcmp_buf_t         enBuf;
    00286     en_adcmp_trig_sel_t    enTrigSel;
    00287
    00288 }stc_mft_adcmp_fm3_config_t;
    00293 /* C binding of definitions if building with C++ compiler */
    00294 #ifdef __cplusplus
    00295 extern "C"
    00296 {
    00297 #endif
    00298
    00299 /* 1. FM0P */
    00300 /* Init */
    00301 en_result_t Mft_Adcmp_Init (volatile stc_mftn_adcmp_t *pstcMftAdcmp,
    00302                             uint8_t u8Ch,
    00303                             stc_mft_adcmp_config_t *pstcConfig);
    00304 /* Func enable/disable */
    00305 en_result_t Mft_Adcmp_EnableOperation(volatile stc_mftn_adcmp_t *pstcMftAdcmp,
    00306                                       uint8_t u8Ch,
    00307                                       stc_mft_adcmp_func_t* pstcFunc);
    00308 en_result_t Mft_Adcmp_DisableOperation(volatile stc_mftn_adcmp_t *pstcMftAdcmp,
    00309                                        uint8_t u8Ch,
    00310                                        stc_mft_adcmp_func_t* pstcFunc);
    00311 /* Count write/read */
    00312 en_result_t Mft_Adcmp_WriteAcmp(volatile stc_mftn_adcmp_t *pstcMftAdcmp, uint8_t u8Ch,
    00313                                 uint16_t u16AcmpVal);
    00314 uint16_t    Mft_Adcmp_ReadAcmp(volatile stc_mftn_adcmp_t *pstcMftAdcmp, uint8_t u8Ch);
    00315
    00316 /* 2. FM3 compatible */
    00317 /* Init */
    00318 en_result_t Mft_Adcmp_Fm3_Init(volatile stc_mftn_adcmp_t *pstcMftAdcmp,
    00319                                uint8_t u8CoupleCh,
    00320                                stc_mft_adcmp_fm3_config_t *pstcConfig);
    00321 /* Mode configuration */
    00322 en_result_t Mft_Adcmp_Fm3_EnableOperation(volatile stc_mftn_adcmp_t *pstcMftAdcmp, uint8_t u8CoupleCh);
    00323 en_result_t Mft_Adcmp_Fm3_DisableOperation(volatile stc_mftn_adcmp_t *pstcMftAdcmp, uint8_t u8CoupleCh);
    00324 /* Count write/read */
    00325 en_result_t Mft_Adcmp_Fm3_WriteAccp(volatile stc_mftn_adcmp_t *pstcMftAdcmp, uint8_t u8CoupleCh, uint16_t u16AccpVal);
    00326 uint16_t Mft_Adcmp_Fm3_ReadAccp(volatile stc_mftn_adcmp_t *pstcMftAdcmp, uint8_t u8CoupleCh);
    00327 en_result_t Mft_Adcmp_Fm3_WriteAccpdn(volatile stc_mftn_adcmp_t *pstcMftAdcmp, uint8_t u8CoupleCh, uint16_t u16AccpdnVal);
    00328 uint16_t Mft_Adcmp_Fm3_ReadAccpdn(volatile stc_mftn_adcmp_t *pstcMftAdcmp, uint8_t u8CoupleCh);
    00329
    00331 #ifdef __cplusplus
    00332 }
    00333 #endif
    00334
    00335 #endif
    00336
    00337 #endif
    00338
    00339
    00340
    00341
    00342 /******************************************************************************/
    00343 /* EOF (not truncated)                                                        */
    00344 /******************************************************************************/