Trích:
Nguyên văn bởi scentoflove
Anh Nam ơi, trong phần i2c hàm read_i2c sau khi set bit RCEN anh gọi wait_i2c và sau khi send ack a cũng gọi wait_i2c. Em sử dụng trên dspic33fj256GP710 thì bị treo 2 chổ đó. Em bỏ đi thì không bị treo nữa.
Anh giải thích dùm em chổ này.
|
Code của tôi viết cho dsPIC30F4012 chỉ có 1 module I2C, nên trong Wait_I2C() kiểm tra cờ _MI2CIF, còn chip của bạn có 2 module với cách gọi tên các cờ ngắt tương ứng khác đi. Đúng ra thì khi bạn dùng code cũ của tôi cho dsPIC33FJ256GP710 thì phải nhận được thông báo lỗi khi biên dịch mới đúng. Bạn sửa lại tên bit cần kiểm tra cho đúng (_MI2C1IF hay _MI2C2IF) trong hàm Wait_I2C() là có thể dùng với chip của bạn.
Thân,