📄 i2c_demo.c
字号:
/* I2C test program that writes & reads data to an I2C EEPROM device. */
#include <pic.h>
#include "delay.h"
#include "i2c.h"
#define ROM 0xA0 /* I2C EEPROM */
void flashled(void) { /* flash a led on RB0 */
while(1) {
RB0 = 1;
DelayMs(200);
RB0 = 0;
DelayMs(200);
}
}
void WriteByte(unsigned char addr, unsigned char byte) {
i2c_WriteTo(ROM);
if (i2c_PutByte(addr)==I2C_ERROR)
flashled();
if (i2c_PutByte(byte)==I2C_ERROR)
flashled();
}
int ReadByte(unsigned char addr) {
i2c_WriteTo(ROM);
if (i2c_PutByte(addr)==I2C_ERROR)
flashled();
i2c_ReadFrom(ROM);
return i2c_GetByte(I2C_LAST);
}
void main(void) {
unsigned char count,val;
TRISB=0; /* use a led on RB0 - set as output */
PORTB=0;
RB0=0;
/* initialize i2c */
#ifdef I2C_MODULE
SSPMode(MASTER_MODE);
SSPEN = 1;
CKP = 1;
#else
SCL_DIR = I2C_OUTPUT;
SDA_DIR = I2C_OUTPUT;
SDA = 0;
SCL = 0;
#endif
while(1) {
for(count=0; count < 10; ++count) {
WriteByte(count,count); /* write to I2C EEPROM */
val = ReadByte(count); /* read back value */
if (val != count) /* verify */
flashled();
}
DelayMs(200);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -