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

📄 mpr084.h

📁 freescale badge board 开发板测试 源程序
💻 H
字号:
/*!
 * \file    MPR084.h
 * \brief   Defines and macros for MPR084 Chip and I2C
 * \version $Revision: 1.3 $
 * \author  Anthony Huereca
 */

#ifndef _MPR084_H_
#define _MPR084_H_

#include <MCF51JM128.h>

/*******************************************************************/

#define MPR084_I2C_ADDRESS                         0x5D
#define LOG_LENGTH                                 8


/* MPR084 registers */
#define FIFO_REGISTER                              0x00
#define FAULT_REGISTER                             0x01
#define TOUCH_STATUS_REGISTER                     0x02
#define TOUCH_CONFIGURATION_REGISTER              0x03
#define SENSITIVITY_REGISTER1                      0x04
#define SENSITIVITY_REGISTER2                      0x05
#define SENSITIVITY_REGISTER3                      0x06
#define SENSITIVITY_REGISTER4                      0x07
#define SENSITIVITY_REGISTER5                      0x08
#define SENSITIVITY_REGISTER6                      0x09
#define SENSITIVITY_REGISTER7                      0x0A
#define SENSITIVITY_REGISTER8                      0x0B
#define ELECTRODE_CHANNEL                          0x0C
#define MAX_TOUCH                                  0x0D
#define MASTER_TICK_COUNTER_REGISTER               0x0E
#define TOUCH_ACQUISITION_SAMPLE_PERIOD_REGISTER   0x0F
#define SOUNDER_CONFIGURATION_REGISTER             0x10
#define LOW_POWER_CONFIGURATION_REGISTER           0x11
#define STUCK_KEY_TIMEOUT_REGISTER                 0x12
#define CONFIGURATION_REGISTER                     0x13
#define SENSOR_INFORMATION_REGISTER                0x14

#define ATTN PTCD_PTCD6 /* ATTN Pin */
#define TOGGLE_ATTN ATTN=1;Pause();ATTN=0;Pause();ATTN=1; /* ATTN pin toggle */


#define i2c_DisableAck()       IIC1C1_TXAK = 1  

#define i2c_RepeatedStart()    IIC1C1     |= 0x04;\

#define i2c_Start()            IIC1C1     |= 0x10;\
                               IIC1C1_MST  = 1

#define i2c_Stop()             IIC1C1_MST  = 0;\
                               IIC1C1_TX   = 0

#define i2c_EnterRxMode()      IIC1C1_TX   = 0;\
                               IIC1C1_TXAK = 0 
 
#define i2c_Wait()               while(!IIC1S_IICIF) {} \
                                  IIC1S_IICIF = 1;  
                            
#define i2c_write_byte(data)   IIC1D = data

#define MWSR                   0x00  /* Master write  */
#define MRSW                   0x01  /* Master read */




/*********************************** Prototype ***********************************/          
void init_I2C(void);
void MPR084_init(void);

void IIC_StartTransmission (byte SlaveID, byte Mode);
void MPR084WriteRegister(byte u8RegisterAddress, byte u8Data);
byte u8MPR084ReadRegister(byte u8RegisterAddress);
void MPR084SetLowPower();
void MPR084SetNormalPower();

byte LastKeyPressed();
byte KeyPressed();
byte ProximitySensorRead();
byte SlideLeftUp();
byte SlideLeftDown();
byte SlideRightUp();
byte SlideRightDown();
byte ExitApp();
byte SecretCode(byte);

void Pause(void);
void AddTouch(byte key);

extern interrupt VectorNumber_Virq void IRQ_ISR (void);
/*******************************************************************/

#endif /* _MPR084_H_ */

⌨️ 快捷键说明

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