📄 twi_slave_drv.h
字号:
#ifndef _TWI_SLAVE_DRV_H_
#define _TWI_SLAVE_DRV_H_
/*头文件*/
#include "config.h"
/*宏定义*/
#define MSK_TWCR_TWINT 0x80
#define MSK_TWCR_TWEA 0x40
#define MSK_TWCR_TWSTA 0x20
#define MSK_TWCR_TWSTO 0x10
#define MSK_TWCR_TWEN 0x04
#define MSK_TWCR_TWIE 0x01
#define Twi_set_address(address) (TWAR = address)
#define Twi_get_address() (TWAR)
#define Twi_set_data(data) (TWDR = data)
#define Twi_set_aa() (TWCR |= MSK_TWCR_TWEA&(~MSK_TWCR_TWINT))
#define Twi_clear_aa() (TWCR &= (~MSK_TWCR_TWEA)&(~MSK_TWCR_TWINT))
#define Twi_get_status() (TWSR)
#define Twi_set_status(twps) (TWSR = twps) //by zmq
#define Twi_clear_start() (TWCR &= (~MSK_TWCR_TWSTA)&(~MSK_TWCR_TWINT) )
#define Twi_set_start() (TWCR |= MSK_TWCR_TWSTA)
#define Twi_set_stop() (TWCR |= MSK_TWCR_TWSTO)
#define Twi_clear_stop() (TWCR &= ~MSK_TWCR_TWSTO)
#define Twi_get_data() (TWDR)
#define Twi_clear_si() (TWCR |= MSK_TWCR_TWINT)
#define Twi_set_baudrate(baudrate)(TWBR = baudrate)
#define Twi_wait_hw_stop() while((TWCR & MSK_TWCR_TWSTO)==MSK_TWCR_TWSTO)
#define Twi_wait_event() while(((TWCR & MSK_TWCR_TWINT))!= MSK_TWCR_TWINT)
#define Disable_twi_interrupt() (TWCR &= ~MSK_TWCR_TWIE)
#define Enable_twi_interrupt() (TWCR |= MSK_TWCR_TWIE)
#define Twi_init_hw(arg) (TWCR = arg)
#define TWI_TRANSFER_OK 0
#define TWI_RECEIVE_OK 1
#define TWI_BUS_ERROR 2
#define TWI_HOST_ADR_NACK 3
#define TWI_HOST_DATA_NACK 4
#define TWI_ARBITRATION_LOST 5
#define TWI_UNKNOWN 6
#define TWI_NOT_FREE 7
#define TWI_OK 8
/*寄存器配置*/
#define TWI_CONFIG 0x44 //slave TWEA=1, TWEN=1
#define TWI_NB_SLAVE_DATA 100
/*外部变量定义*/
extern uchar twi_busy;
extern uchar twi_err;
//extern volatile unsigned char xdata twi_slave_data[TWI_NB_SLAVE_DATA]; //The slave data buffer when TWI ask in slave
extern uchar Sdisbuf[3];
extern uchar Skeybuf[4];
/*函数定义*/
/*外部函数定义*/
extern void twi_lib_init (void);
extern unsigned char twi_slave_polling (void);
extern void twi_slave_interrupt (void);
#endif /* _TWI_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -