Trích:
Nguyên văn bởi conglong
Trong TUTO về I2C (vidu4.3) thầy có dùng các lệnh sau em không hiểu lắm: (chố em không hiểu em có comment ở ngay sau lệnh) mong thầy nói rõ cho em với :
Wait_I2C(); //trong hàm này thầy dùng cờ ngắt là _MI2CIF vậy sao thầy
//không set bit enable _MI2CIE trong hàm void Init_PORTS(void)?
Send_I2C(0xD0);//tại sao đây là dịa chỉ của ds1307 số khác được khôngthầy ?
Send_I2C(0x67);
// trước khi ghi vào REG 02 của RTM thì phải gửi điạ //chỉ chứ (giống như các lệnh thao tác //trên //REG01?? con số hex 67 có nghĩa gì ?)
Send_I2C(0x01);
//Xuat số con số 01 nầy là chỉ Thứ 2 của tuần phài //không ?
Send_I2C(0x25); //Xuat noi dung cua thanh ghi 0x04 (dem ngay)
Send_I2C(0x08); //Xuat noi dung cua thanh ghi 0x05 (dem thang)
// hai số hex 25 và 08 có nghĩa gì?
em cảm ơn !
Trân trọng !.
|
Việc dùng cờ ngắt _MI2CIF không liên quan đến việc ngắt MI2C có được cho phép hay không. Cờ ngắt _MI2CIF sẽ thay đổi trạng thái theo trạng thái của bộ đệm dữ liệu, chứ không phụ thuộc vào việc ngắt MI2C có được enable hay không.
Địa chỉ 0xD0 của DS1307 là do nhà sản xuất vi mạch DS1307 quy định, nếu không dùng đúng giá trị này thì DS1307 sẽ không đáp ứng với các yêu cầu đã được gửi ra bus I2C.
Những vấn đề liên quan đến các câu hỏi còn lại của bạn đều được mô tả trong datasheet của DS1307, đề nghị bạn đọc nó. Những thông tin điều khiển gửi đến một vi mạch ngoài PIC cần tuân thủ những yêu cầu đã đề ra trong datasheet của vi mạch đó.
Thân,