/************************************
* 功 能:用TWI主从通信 *
* 建立日期:2008年11月04日 *
* 设 计 者: *
* 版 本: *
* 修改日期:2012-9-6 *
* 主控芯片:ATmega16 *
* 时钟频率:外部晶体7.3728MHz *
* 编 译 器:ICCAVR6.31A *
************************************/
#include "config.h"
uint8 IIC_transmit[TXNUM];
uint8 IIC_receive [RXNUM];
#if TWI_MOD == 1 //从机模式
void twi_master_init(void)
{
PORTC |= (1<<SCL)|(1<<SDA);
DDRC &= ~((1<<SCL)|(1<<SDA));
TWCR= 0x00;
TWSR= 0x00; //set prescale
TWBR= (F_CPU/F_IIC_SCL - 16)>>1;//250; //set bit rate
/*
CPU Clock frequency
SCL frequency = --------------------
16 + 2(TWBR) * 4
*/
TWAR= 0x00; //set slave address
TWCR= 0x04; //enable twi
}
//总线上起动开始条件
void i2c_start(void)
{
TWCR= (1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
while (!(TWCR & (1<<TWINT))); //等待START 信号成功发送
}
//把一个字节数据输