![]() |
|
Tài trợ cho PIC Vietnam |
dsPIC - Bộ điều khiển tín hiệu số 16-bit Theo dự kiến của Microchip, vào khoảng năm 2011 dsPIC sẽ có doanh số lớn hơn PIC |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#1 |
Đệ tử 5 túi
Tham gia ngày: Jan 2008
Bài gửi: 97
: |
Lỗi khó hiểu trong SPI Module
Các bạn xem 2 đoạn code dưới đây :
Đoạn code 1: while(1){ WriteSPI1(0x45); while(SPI1STATbits.SPITBF);delay_us(20); WriteSPI1(0b10); while(SPI1STATbits.SPITBF);delay_us(20); WriteSPI1(0b10); while(SPI1STATbits.SPITBF);delay_us(20); WriteSPI1(0b10); while(SPI1STATbits.SPITBF);delay_us(20); WriteSPI1(0b10); while(SPI1STATbits.SPITBF);delay_us(20); WriteSPI1(0x95]); while(SPI1STATbits.SPITBF);delay_us(20); WriteSPI1(0xf0); while(SPI1STATbits.SPITBF);delay_us(20); } và Đoạn code 2: while(1){ WriteSPI1(0x45); while(SPI1STATbits.SPITBF); WriteSPI1(0b10); while(SPI1STATbits.SPITBF); WriteSPI1(0b10); while(SPI1STATbits.SPITBF); WriteSPI1(0b10); while(SPI1STATbits.SPITBF); WriteSPI1(0b10); while(SPI1STATbits.SPITBF); WriteSPI1(0x95]); while(SPI1STATbits.SPITBF); WriteSPI1(0xf0); while(SPI1STATbits.SPITBF); } Tôi quan sát trên bộ Analyzer(bộ phân tích logic) thì thấy rằng ở đoạn code 1 nó hiển thị đầy đủ các byte 0x45 0b10 0b10 0b10 0b10 0x95 0xf0, nhưng ở đoạn code 2 nó hiển thị thiếu thông tin cụ thể chỉ có 0x45 0b10 0b10 0xf0. Tôi không hiểu tại sao nữa, bởi vì tôi chờ bit SPI1STATbits.SPITBF ==0 tức bộ đệm truyền trống rỗng mới truyền tiếp. xin giải thích hộ. |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|