Trích:
Nguyên văn bởi trangham283
Em cảm ơn anh Nam, ý anh là đoạn này ạ? Em có đọc qua tutorial này rồi, nhưng em vẫn không hiểu lắm :"> Anh có thể làm ơn giải thích thêm cho em về thao tác truyền dữ liệu sang slave được không ạ?
Có nghĩa là nếu em config giao tiếp 8-bit, sau khi SPIxSR nhận 8 bit, 8 bit này sẽ được chép vào SPIxRXB rồi sẽ cần được đọc ra để tránh tràn và mất dũ liệu?
Em xin lỗi nếu em lại đọc sót phần quan trọng :P, nhưng em vẫn không hiểu thao tác truyền dữ liệu. Đoạn trên là nhân dữ liệu từ slave, vậy nếu em muốn gửi dữ liệu, em cần viết vào SPIxBUF, thì vẫn là viết 16 bit phải không ạ? Hay là em phải dùng lệnh mov.b? (Em đang tập viết bằng hợp ngữ)
Em cảm ơn anh nhiều ạ.
|
Ngay dưới đoạn mà bạn vừa đưa lên là thông tin chọn cấu hình, nếu đặt bit MODE16 = 0 thì bạn sẽ dùng chế độ truyền thông 8-bit. Trong chế độ này, chỉ có 8 bit được dịch ra chân SDO, và 8 bit được dịch vào chân SDI.
Bạn ghi bao nhiêu bit vào SPIxBUF thì cũng chỉ có 8 bit thấp nhất được gửi sang slave khi chọn MODE16 = 0, và cũng chỉ có 8 bit thấp nhất là dữ liệu thực sự nhận được từ slave trong trường hợp này. Không nhất thiết phải dùng lệnh mov.b để lọc 8 bit dữ liệu nhận được từ slave, nhưng đó là một cách tốt.
Thân,