📄 sense.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 + -