📄 mpr083.h
字号:
/*!
* \file mpr083.h
* \brief Defines and macros for MPR083 Chip and I2C
* \version $Revision: 1.1 $
* \author Anthony Huereca
*/
#ifndef _MPR083_H_
#define _MPR083_H_
#include <MCF51JM128.h>
/*******************************************************************/
#define MPR083_I2C_ADDRESS 0x4D
#define LOG_LENGTH 8
/* MPR083 registers */
#define FIFO_REGISTER 0x00
#define FAULT_REGISTER 0x01
#define ROTARY_STATUS_REGISTER 0x02
#define ROTARY_CONFIGURATION_REGISTER 0x03
#define SENSITIVITY_REGISTER 0x04
#define MASTER_TICK_COUNTER_REGISTER 0x05
#define TOUCH_ACQUISITION_SAMPLE_PERIOD_REGISTER 0x06
#define SOUNDER_CONFIGURATION_REGISTER 0x07
#define LOW_POWER_CONFIGURATION_REGISTER 0x08
#define STUCK_KEY_TIMEOUT_REGISTER 0x09
#define CONFIGURATION_REGISTER 0x0A
#define SENSOR_INFORMATION_REGISTER 0x0B
#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 MPR083_init(void);
void IIC_StartTransmission (byte SlaveID, byte Mode);
void MPR083WriteRegister(byte u8RegisterAddress, byte u8Data);
byte u8MPR083ReadRegister(byte u8RegisterAddress);
void Pause(void);
extern interrupt VectorNumber_Virq void IRQ_ISR (void);
/*******************************************************************/
#endif /* _MPR083_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -