📄 twi.c
字号:
//-----------------------------------------------------------
//程序由AVR辅助开发工具V2.0.0自动生成
//MCU系统的处理器为: ATMega16
//MCU系统的晶振频率: 8.0000 Mhz
//-----------------------------------------------------------
#include <iom16v.h>
#include "delay.h"
#include "twi.h"
//-----------------------------------------------------------
//TWI初始化子程序
//-----------------------------------------------------------
void TWI_Init(void)
{
TWCR= 0x00; //disable twi
TWBR= 0x49; //set bit rate
TWSR= 0x03; //set prescale
TWAR= 0xFE; //set slave address
}
//总线上起动停止条件
void twi_stop(void)
{
TWI_Stop();
}
//总线上起动开始条件
unsigned char twi_start(void)
{
TWI_Start();
TWI_Wait();
return TW_STATUS;
}
//写一字节
unsigned char twi_writebyte(unsigned char c)
{
TWDR = c;
delay_nms(10);
TWCR = (1 << (TWINT)) | (1 << (TWEN));
TWI_Wait();
delay_nms(10);
return TW_STATUS;
}
//读一字节 ack: true时发ACK,false时发NACK
unsigned char twi_readbyte(unsigned char *c ,unsigned char ack)
{
unsigned char tmp=(1 << (TWINT)) | (1 << (TWEN));
if(ack)
tmp|=(1 << (TWEA));
TWCR=tmp;
delay_nms(10);
TWI_Wait();
delay_nms(10);
*c=TWDR;
return TW_STATUS;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -