📄 slaver.c
字号:
/*********************************************************************************************************
** 函数名称:I2cSetLocalDeviceAddr
** 功能描述:设置本机地址(从机方式)
** 输 入: I2cSetLocalDeviceAddr:
** 输 出:
** 全局变量:
** 调用模块:
** 说明:
** 注意:
** 日 期: 2006年8月29日
********************************************************************************************************
void I2cSetLocalDeviceAddr(uint8 deviceAddr, uint8 genCallEn)
{
// 设置本机从地址 (从方式时)
TWAR=(deviceAddr&0xFE)|(genCallEn&0x01);
}
/*********************************************************************************************************
** 函数名称:I2cSendStart
** 功能描述:发START
** 输 入:
** 输 出:
** 全局变量:
** 调用模块:
** 说明:
** 注意: 可以使用头文件中的Twi_Start() 宏代替,从而提高效率
** 日 期: 2006年8月29日
********************************************************************************************************
void I2cSendStart(void)
{
TWCR=TWCR&TWCR_CMD_MASK|(1<<TWINT)|(1<<TWSTA);
}
/*********************************************************************************************************
** 函数名称: I2cSendStop
** 功能描述:发送停止条件,保持TWEA以便从接收
** 输 入:
** 输 出:
** 全局变量:
** 调用模块:
** 说明:
** 注意: 可以使用头文件中的Twi_Stop() 宏代替,从而提高效率
** 日 期: 2006年8月29日
********************************************************************************************************
void I2cSendStop(void)
{
// 发送停止条件,保持TWEA以便从接收
TWCR=TWCR&TWCR_CMD_MASK|(1<<TWINT)|(1<<TWEA)|(1<<TWSTO);
}
/*********************************************************************************************************
** 函数名称: I2cWaitForComplete
** 功能描述:等待I2c 总线操作完成
** 输 入:
** 输 出:
** 全局变量:
** 调用模块:
** 说明:
** 注意: 可以使用头文件中的Twi_Wait() 宏代替,从而提高效率
** 日 期: 2006年8月29日
********************************************************************************************************
void I2cWaitForComplete(void)
{
// 等待I2c 总线操作完成
while( !(TWCR&(1<<TWINT)) );
}
/*********************************************************************************************************
** 函数名称:I2cSendByte
** 功能描述:发送数据
** 输 入: data:数据
** 输 出:
** 全局变量:
** 调用模块:
** 说明:
** 注意: 可以使用头文件中的Twi_Transmit() 宏代替,从而提高效率
** 日 期: 2006年8月29日
********************************************************************************************************
void I2cSendByte(uint8 data)
{
// 装载数据到 TWDR
TWDR=data;
// 发送开始
TWCR=TWCR&TWCR_CMD_MASK|(1<<TWINT);
}
/*********************************************************************************************************
** 函数名称:I2cSetLocalDeviceAddr
** 功能描述:设置本机地址(从机方式)
** 输 入: I2cSetLocalDeviceAddr:
** 输 出:
** 全局变量:
** 调用模块:
** 说明:
** 注意:
** 日 期: 2006年8月29日
*******************************************************************************************************
extern void I2cSetLocalDeviceAddr(uint8 deviceAddr, uint8 genCallEn);
/*********************************************************************************************************
** 函数名称:I2cSendStart
** 功能描述:发START
** 输 入:
** 输 出:
** 全局变量:
** 调用模块:
** 说明:
** 注意: 可以使用头文件中的Twi_Start() 宏代替,从而提高效率
** 日 期: 2006年8月29日
********************************************************************************************************
extern void I2cSendStart(void);
/*********************************************************************************************************
** 函数名称: I2cSendStop
** 功能描述:发送停止条件,保持TWEA以便从接收
** 输 入:
** 输 出:
** 全局变量:
** 调用模块:
** 说明:
** 注意: 可以使用头文件中的Twi_Stop() 宏代替,从而提高效率
** 日 期: 2006年8月29日
********************************************************************************************************
extern void I2cSendStop(void);
/*********************************************************************************************************
** 函数名称: I2cWaitForComplete
** 功能描述:等待I2c 总线操作完成
** 输 入:
** 输 出:
** 全局变量:
** 调用模块:
** 说明:
** 注意: 可以使用头文件中的Twi_Wait() 宏代替,从而提高效率
** 日 期: 2006年8月29日
********************************************************************************************************
extern void I2cWaitForComplete(void);
/*********************************************************************************************************
** 函数名称:I2cSendByte
** 功能描述:发送数据
** 输 入: data:数据
** 输 出:
** 全局变量:
** 调用模块:
** 说明:
** 注意: 可以使用头文件中的Twi_Transmit() 宏代替,从而提高效率
** 日 期: 2006年8月29日
********************************************************************************************************
extern void I2cSendByte(uint8 data);
/*********************************************************************************************************
** 函数名称:I2cGetReceivedByte
** 功能描述:返回接收到的数据
** 输 入:
** 输 出:
** 全局变量:
** 调用模块:
** 说明:
** 注意:
** 日 期: 2006年8月29日
********************************************************************************************************
uint8 I2cGetReceivedByte(void)
{
// 返回接收到的数据
return( TWDR );
}
/*********************************************************************************************************
** 函数名称:I2cGetStatus
** 功能描述:返回总线状态
** 输 入:
** 输 出:
** 全局变量:
** 调用模块:
** 说明:
** 注意: 可以使用头文件中的Test_Twsr() 宏代替,从而提高效率
** 日 期: 2006年8月29日
********************************************************************************************************
uint8 I2cGetStatus(void)
{
// 返回总线状态
return(TWSR);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -