?? i2c_demo2.c
字號:
/* I2C test program that writes & reads data to an I2C EEPROM device. */
#include <pic.h>
#include "delay.h"
#include "delay.c"
#include "i2c.c"
#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);
}
static int remain,remain1;
void main(void) {
unsigned char count,val;
TRISB=0; /* use a led on RB0 - set as output */
PORTB=0;
RB0=0;
PORTA=0;
ADCON1=0X06;
TRISA=0; /* use a led on RB0 - set as output */
RA2=1;
/* initialize i2c */
#if 0 //def 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 + -