📄 i2c.c
字号:
#include "avr/io.h"
#include "compat/twi.h"
void I2C_Init(void)
{
TWSR=0x00;
TWBR=0x00;
TWAR=0x00;
TWCR=0x44;
PORTC|=0x33;
}
unsigned char I2C_Start(void)
{
TWCR=(1<<TWINT)|(1<<TWSTA)|(1<<TWEN);
while(!(TWCR&(1<<TWINT)));
return 1;
}
void I2C_Stop(void)
{
TWCR=(1<<TWINT)|(1<<TWEN)|(1<<TWSTO);
}
unsigned char I2C_Write(unsigned char c)
{
unsigned char ACK=1;
TWDR=c;
TWCR=(1<<TWINT)|(1<<TWEN);
while(!(TWCR&(1<<TWINT)));
if((TWSR&0xF8)!=TW_MT_SLA_ACK)
ACK=0;
return ACK;
}
unsigned char I2C_Read(unsigned char ACK)
{
if(ACK)
TWCR=(1<<TWINT)|(1<<TWEN)|(1<<TWEA);
else
TWCR=(1<<TWINT)|(1<<TWEN);
while(!(TWCR&(1<<TWINT)));
return TWDR;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -