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

📄 twi_slave_drv.h

📁 at90can128底层驱动 有SPI,TWI,总线,CAN接口等
💻 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 + -