⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sense.h

📁 cypress的触摸按键模块介绍calibrating_capsense_with_the_csr_user_module___an2355_13.
💻 H
字号:
//*****************************************************************************
//*****************************************************************************
//  FILENAME: SENSE.h
//   Version: 1.1, Updated on 2005/10/13 at 09:13:22
//  Generated by PSoC Designer ver 4.2  b1013 : 02 September, 2004
//
//  DESCRIPTION: CSR User Module C Language interface file
//               for the 21030 PSoC family of devices
//-----------------------------------------------------------------------------
//  Copyright (c) Cypress MicroSystems 2000-2004. All Rights Reserved.
//*****************************************************************************
//*****************************************************************************

#include <m8c.h>

#define SENSE_ESD_DETECTION 0x8
#define SENSE_BUTTONS_EXIST 0x8
#define SENSE_SLIDERS_EXIST 0x0

// Low Level scan API
#pragma fastcall16 SENSE_Start
#pragma fastcall16 SENSE_Stop
#pragma fastcall16 SENSE_StartScan                 // 
#pragma fastcall16 SENSE_StopScan                  // 
#pragma fastcall16 SENSE_GetScanStatus             // 
#pragma fastcall16 SENSE_ClearSwitches             // 
#pragma fastcall16 SENSE_fIsSwitchReady            // 
#pragma fastcall16 SENSE_iReadSwitch               // 

#pragma fastcall16 SENSE_iGetPortPin               // 
#pragma fastcall16 SENSE_EnableSwitch              // 
#pragma fastcall16 SENSE_DisableSwitch             //          
#pragma fastcall16 SENSE_SetDacCurrent             // 
#pragma fastcall16 SENSE_SetScanSpeed              // 
         
// High Level API
#pragma fastcall16 SENSE_bUpdateBaseline           //
#pragma fastcall16 SENSE_bGetCentroidPos           //

//-------------------------------------------------
// Prototypes of the SENSE API.
//-------------------------------------------------

extern void SENSE_Start(void);                               // Proxy  
extern void SENSE_Stop(void);                                // Proxy  
extern void SENSE_StartScan(BYTE bStartSw, BYTE bSwCnt, BYTE bMode);  // Proxy  
extern void SENSE_StopScan(void);                            // Proxy  
extern BYTE SENSE_GetScanStatus(void);                       // Proxy  
extern void SENSE_ClearSwitches(void);                       // Proxy  
extern BYTE SENSE_fIsSwitchReady(void);                      // Proxy  
extern int  SENSE_iReadSwitch(BYTE bSwitch);                 // Proxy  

extern int  SENSE_iGetPortPin(BYTE bSwitchNum);              // Proxy  
extern void SENSE_EnableSwitch(BYTE bMask, BYTE bPort);      // Proxy  
extern void SENSE_DisableSwitch(BYTE bMask, BYTE bPort);     // Proxy  
extern void SENSE_SetDacCurrent(BYTE bValue, BYTE bRange);   // Proxy  
extern void SENSE_SetScanSpeed(BYTE bDivider);               // Proxy  

//-------------------------------------------------
// High level functions
//-------------------------------------------------

extern BYTE SENSE_bUpdateBaseline(BYTE bSwGroup);  // Proxy  
#if SENSE_SLIDERS_EXIST
extern BYTE SENSE_bGetCentroidPos(BYTE bSwGroup); // Proxy
#endif
//--------------------------------------------------
// Variables for SENSE.
//--------------------------------------------------
extern BYTE SENSE_bfStatus;

extern unsigned int SENSE_iaSwResult[];
extern unsigned int SENSE_iaSwBaseline[];
extern unsigned int SENSE_iaSwDiff[];
extern BYTE SENSE_baSwOnMask[];
extern BYTE SENSE_bBaselineUpdateTimer;
extern BYTE SENSE_fIsBLValid;

#if SENSE_BUTTONS_EXIST
extern BYTE SENSE_baBtnFThreshold[];
#endif

#if SENSE_ESD_DETECTION
extern int SENSE_iaSwDeriv[];
extern BYTE	SENSE_baBaselineResetCounter[];
extern BYTE SENSE_baESDDebounce[];
extern BYTE SENSE_bAbnormalTimer;
#endif

#if SENSE_SLIDERS_EXIST
extern BYTE SENSE_bCtrdPos;
extern BYTE SENSE_baCtrdPkPos[];
extern unsigned int SENSE_iaCtrdPkValue[];
#endif

//--------------------------------------------------
// Constants for SENSE API's.
//--------------------------------------------------

#define SENSE_CONTROL_REG_START_BIT            ( 0x01 )


//--------------------------------------------------
// Constants for SENSE user defined values
//--------------------------------------------------


// Scan Modes
#define SENSE_SCAN_CONTINUOUS                      0x01
#define SENSE_SCAN_ONCE                            0x00

// Scan Status
#define SENSE_SCAN_ACTIVE                          0x10
#define SENSE_SCAN_SET_COMPLETE                    0x20

// Sizes
#define SENSE_ButtonCount                          0x8
#define SENSE_SliderCount                          0x0
#define SENSE_TotalSwitchCount                     0x8

// DAC Ranges
#define SENSE_DAC_LOW                              0x00
#define SENSE_DAC_HIGH                             0x01

// Scan Speed
#define SENSE_Scan_500HZ                           186  
#define SENSE_Scan_1KHZ                            93   
#define SENSE_Scan_2KHZ                            46  

// Scan Mode 
#define SENSE_Method                               1
#define SENSE_Method_Frequency                     0
#define SENSE_Method_Period                        1



//-------------------------------------------------
// Register Addresses for SENSE
//-------------------------------------------------
#pragma ioport  SENSE_ACE_CONTROL1_REG: 0x072              // Analog block control Register 1
BYTE            SENSE_ACE_CONTROL1_REG;
#pragma ioport  SENSE_ACE_CONTROL2_REG: 0x073              // Analog block control Register 2
BYTE            SENSE_ACE_CONTROL2_REG;

#pragma ioport  SENSE_PWM_FUNC_REG: 0x120                  // PWM Function Register 
BYTE            SENSE_PWM_FUNC_REG;
#pragma ioport  SENSE_PWM_IN_REG:   0x121                  // PWM Input Register    
BYTE            SENSE_PWM_IN_REG;
#pragma ioport  SENSE_PWM_OUT_REG:  0x122                  // PWM Output Register
BYTE            SENSE_PWM_OUT_REG;
#pragma ioport  SENSE_PWM_COUNTER_REG:  0x020              // PWM Counter Register
BYTE            SENSE_PWM_COUNTER_REG;
#pragma ioport  SENSE_PWM_PERIOD_REG:   0x021              // PWM Period Refister
BYTE            SENSE_PWM_PERIOD_REG;
#pragma ioport  SENSE_PWM_COMPARE_REG:  0x022              // PWM Compare Register
BYTE            SENSE_PWM_COMPARE_REG;
#pragma ioport  SENSE_PWM_CONTROL_REG:  0x023              // PWM Control Register
BYTE            SENSE_PWM_CONTROL_REG;

#pragma ioport  SENSE_CTR_COUNTER_LSB_REG:  0x024          // Count register LSB
BYTE            SENSE_CTR_COUNTER_LSB_REG;
#pragma ioport  SENSE_CTR_COUNTER_MSB_REG:  0x028          // Count register MSB
BYTE            SENSE_CTR_COUNTER_MSB_REG;
#pragma ioport  SENSE_CTR_PERIOD_LSB_REG:   0x025          // Period register LSB
BYTE            SENSE_CTR_PERIOD_LSB_REG;
#pragma ioport  SENSE_CTR_PERIOD_MSB_REG:   0x029          // Period register MSB
BYTE            SENSE_CTR_PERIOD_MSB_REG;
#pragma ioport  SENSE_CTR_COMPARE_LSB_REG:  0x026          // Compare register LSB
BYTE            SENSE_CTR_COMPARE_LSB_REG;
#pragma ioport  SENSE_CTR_COMPARE_MSB_REG:  0x02a          // Compare register MSB
BYTE            SENSE_CTR_COMPARE_MSB_REG;
#pragma ioport  SENSE_CTR_CONTROL_LSB_REG:  0x027          // Control register LSB
BYTE            SENSE_CTR_CONTROL_LSB_REG;
#pragma ioport  SENSE_CTR_CONTROL_MSB_REG:  0x02b          // Control register MSB
BYTE            SENSE_CTR_CONTROL_MSB_REG;
#pragma ioport  SENSE_CTR_FUNC_LSB_REG: 0x124              // Function register LSB
BYTE            SENSE_CTR_FUNC_LSB_REG;
#pragma ioport  SENSE_CTR_FUNC_MSB_REG: 0x128              // Function register MSB
BYTE            SENSE_CTR_FUNC_MSB_REG;
#pragma ioport  SENSE_CTR_INPUT_LSB_REG:    0x125          // Input register LSB
BYTE            SENSE_CTR_INPUT_LSB_REG;
#pragma ioport  SENSE_CTR_INPUT_MSB_REG:    0x129          // Input register MSB
BYTE            SENSE_CTR_INPUT_MSB_REG;
#pragma ioport  SENSE_CTR_OUTPUT_LSB_REG:   0x126          // Output register LSB
BYTE            SENSE_CTR_OUTPUT_LSB_REG;
#pragma ioport  SENSE_CTR_OUTPUT_MSB_REG:   0x12a          // Output register MSB
BYTE            SENSE_CTR_OUTPUT_MSB_REG;


//-------------------------------------------------
// SENSE Macro 'Functions'
//-------------------------------------------------

#define SENSE_Start_M \
   ( SENSE_CTR_CONTROL_LSB_REG |=  SENSE_CONTROL_REG_START_BIT )

#define SENSE_Stop_M  \
   ( SENSE_CTR_CONTROL_LSB_REG &= ~SENSE_CONTROL_REG_START_BIT )

#define SENSE_EnableInt_M   \
   M8C_EnableIntMask(  SENSE_INT_REG, SENSE_INT_MASK )

#define SENSE_DisableInt_M  \
   M8C_DisableIntMask( SENSE_INT_REG, SENSE_INT_MASK )


// end of file SENSE.h

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -