|
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 |
25-11-2013, 03:45 PM | #1 |
Đệ tử 3 túi
Tham gia ngày: Apr 2008
Bài gửi: 50
: |
Xem giúp em đoạn code truyền spi này bị lỗi chỗ nào?
#include <p30F6014A.h>
#define FCY 10000000 #include <libpic30.h> #include <spi.h> _FOSC(CSW_FSCM_OFF & HS2_PLL4); _FWDT(WDT_OFF); _FBORPOR( PBOR_OFF); _FGS(CODE_PROT_OFF); int a,j,i,f,k,e[16][8],b[3][8]; int b[3][8]={0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00, 0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E, 0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08}; void int_spi() { SPI2STAT=0x8000; SPI2CON=0x003F; }; int latch()// Ham tao xung latch data ra cac ma tran led { LATCbits.LATC2=0; LATCbits.LATC2=0; } void main() { TRISD=0; TRISC=0; TRISF=0; TRISG=0; LATCbits.LATC1=1;// Chan EN LATCbits.LATC2=1; //Chon quet 8 hang tren hoac 8 hag duoi while(1) { int_spi(); LATCbits.LATC3=1; for(j=0;j<3;j++) { LATD=j;// Bien j chon hang de quet: 0 quet hang dau tien 7:quet hang thu 8 for(i=0;i<8;i++) { a=b[1][i]; SPI2BUF= a; while(!SPI2STATbits.SPITBF); }; latch(); }; }; }; Khổng hiểu sao đoạn code này em cho nó scan 1 hàng thì spi lại truyền đúng chuỗi bit cần hiển thị. Nhưng scan nhiều hàng thì nó lại bị sai. thay đổi nội dung bởi: vn00426941, 02-12-2013 lúc 04:44 PM. |
|
|