![]() |
hỏi về giao tiếp I2C
Chào các bạn!
Mình đang gặp khó khăn trong giao tiếp I2C. Bài toán của mình là giao tiếp giữa 2 con PIC 16F877A. Khi mình sử dụng thạch anh 4 Mhz thì nó chạy tốt. Nhưng khi thay con thạch anh 20 Mhz thì không còn chạy được nữa code master: Code:
#include <16F877A.H> code slave: Code:
#include <16F877A.H> |
Với thạch anh 20 MHz, bạn nên dùng HS thay vì XT cho cấu hình bộ dao động.
Thân, |
Chào các bạn!
Mình muốn hỏi thêm các bạn một vấn đề nữa trong giao tiếp I2C. Bài toán của mình vẫn như trên (giao tiếp giữa 2 con PIC 16F877A). Cho hỏi hàm i2c_isr_state() khi nào trả giá trị về 1,2... 0x81,0x82...Mình mới chỉ thành công khi giao tiếp 1 lần truyền 1 byte, còn 2 byte thì không đúng, code truyền 2 byte: code master: Code:
#include <16F877A.H> Giúp mình nha! // mình vẫn chưa cho code vào trong khung được:D |
Trích:
http://www.picvietnam.com/forum/showthread.php?t=2610 Thân, |
Chào các bạn!
Mình đã giải quyết được vấn đề trên. Mình gửi 4 số từ Master đến Slave và nhận lại về 4 số đó, cho hiển thị lên LCD. Ai có cách khác thì post lên cho mọi người cùng tham khảo nhé code master: Code:
#include <16F877A.H> Code:
#include <16F877A.H> |
...............
void main() { int8 value_re=2; int8 i=10; const int8 N = 8; const int8 slave_addr = 0x10; set_tris_b(0x00); trisd=0; rd3=0; ............... Các bạn cho mình hỏi trong chương trình của bạn toanck86: * Biến i, N dùng để làm gì? * rd3=0 có ý nghĩa gì vậy nhỉ? |
Múi giờ GMT. Hiện tại là 11:12 AM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam