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. |
undefinedundefinedAi giúp em với. Khi giữ cố đinh giá trị a=b[1][i] và quét 1 hàng thì lại đúng đc giá trị cần hiển thị. Nhưng khi dùng vòng lặp for cho biến j vào a=b[j][i] thì nó hiển thị sai.
|
Múi giờ GMT. Hiện tại là 02:54 PM. |
Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam