![]() |
|
Tài trợ cho PIC Vietnam |
Cơ bản về vi điều khiển và PIC Những bài hướng dẫn cơ bản nhất để làm quen với vi điều khiển PIC |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#7 |
Trưởng lão PIC bang
|
Bạn xem lại chương trình mà bạn đã tham khảo, ở phần đọc dữ liệu từ DS1307, trong một loạt lệnh i2c_read(), chỉ có lệnh cuối là dùng i2c_read(0), còn những lệnh trước đó là i2c_read(), tức là tương đương với i2c_read(1). Đoạn code trong hàm ds1307_init() của bạn có 2 lệnh gọi i2c_read(0) ở phần đầu, đây chính là chỗ không ổn. Trong một loạt lệnh read từ I2C, mỗi lệnh đều phải ACK trừ lệnh sau cùng, để báo cho slave biết là master không muốn đọc nữa.
Bạn đọc thêm về I2C ở đây: https://www2.hcmut.edu.vn/~nqnam/Commu.php#i2c Và tham khảo thêm tập tin nguồn "Vidu4-4.c" trong tutorial 4 dành cho dsPIC của tôi, tôi đã chú thích thứ tự những thao tác cần thực hiện khi giao tiếp với DS1307. Thân,
__________________
Biển học mênh mông, sức người có hạn. Đang gặp vấn đề cần được giúp đỡ? Hãy dành ra vài phút đọc luồng sau: http://www.picvietnam.com/forum/showthread.php?t=1263 |
![]() |
![]() |
|
|