Trích:
Nguyên văn bởi namqn
|
Cảm ơn anh, nhưng em không viết lại các hàm I2C mà dùng các hàm xây dựng sẵn trong thư viện I2C.h của c18. Em post code của em lên anh xem giúp em với. Em cảm ơn anh nhiều!
Đây là đoạn code em viết thử ghi dữ liệu xuống ds1307:
Code:
#include "p18F2550.h"
#include "i2c.h"
#pragma config FOSC = HS,FCMEN = OFF,IESO = OFF
#pragma config PWRT = ON,BOR = OFF,BORV = 0
#pragma config WDT = OFF
#pragma config MCLRE = OFF,LPT1OSC = OFF,PBADEN = OFF,CCP2MX = OFF
#pragma config STVREN = OFF,LVP = OFF,XINST = OFF,DEBUG = OFF
#pragma config CP0 = OFF,CP1 = OFF,CP2 = OFF
#pragma config CPB = OFF,CPD = OFF
#pragma config WRT0 = OFF,WRT1 = OFF,WRT2 = OFF
#pragma config WRTB = OFF,WRTC = OFF,WRTD = OFF
#pragma config EBTR0 = OFF,EBTR1 = OFF,EBTR2 = OFF
#pragma config EBTRB = OFF
void write_ds1307(void)
{
OpenI2C(MASTER,SLEW_OFF);
StartI2C();
IdleI2C();
WriteI2C(0xD0);
IdleI2C();
WriteI2C(0x02);
IdleI2C();
WriteI2C(0x22);
StopI2C();
}
void main(void)
{
TRISBbits.TRISB0=1;
TRISBbits.TRISB1=1;
SSPADD=5000000/100000-1;
write_ds1307();
while(1){}
}