實驗版APP013 USB C#開發
|
|
|||
---|---|---|---|---|
新會員
|
發表於: 2011/3/10 23:23
|
|||
|
Re: 記憶體宣告大的陣列
|
||||
---|---|---|---|---|
新會員
|
謝謝你們的回答!!!
我了解嚕!!!
發表於: 2009/3/18 20:13
|
|||
|
PIC4520 與25LC160 溝通使用SPI
|
||||
---|---|---|---|---|
新會員
|
小弟使用C18 用到SPI部分與25LC160 傳輸讀取資料
程式會卡在busy_polling(); 就算去掉 讀到的值 也是錯誤 石英晶體是接16M 用的實驗版是APP001 請問是什麼原因呢!? 謝謝 以下是程式碼 #include <p18cxxx.h> #include <spi.h> // FUNCTION Prototypes void set_wren(void); void busy_polling(void); void status_write(unsigned char data); void byte_write(unsigned char addhigh,unsigned char addlow,unsigned char data); unsigned char byte_read (unsigned char addhigh,unsigned char addlow); unsigned char var; unsigned char ff=0x00; #define SPI_CS LATAbits.LATA5 //************************************************** void main(void) { ADCON1=0X0F; TRISA = 0; SPI_CS = 1; // ensure SPI memory device // Chip Select is reset OpenSPI(SPI_FOSC_16, MODE_00, SMPEND); set_wren(); status_write(0); busy_polling(); set_wren(); byte_write(0x00, 0x61, 'E'); busy_polling(); ff = byte_read(0x00, 0x61); CloseSPI(); while(1); } void set_wren(void) { SPI_CS = 0; //assert chip select var = putcSPI(SPI_WREN); //send write enable command SPI_CS = 1; //negate chip select } void byte_write (unsigned char addhigh,unsigned char addlow,unsigned char data) { SPI_CS = 0; //assert chip select var = putcSPI(SPI_WRITE); //send write command var = putcSPI(addhigh); //send high byte of address var = putcSPI(addlow); //send low byte of address var = putcSPI(data); //send data byte SPI_CS = 1; //negate chip select } unsigned char byte_read (unsigned char addhigh,unsigned char addlow) { SPI_CS = 0; //assert chip select var = putcSPI(SPI_READ); //send read command var = putcSPI(addhigh); //send high byte of address var = putcSPI(addlow); //send low byte of address var = getcSPI(); //read single byte SPI_CS = 1; return (var); } void status_write (unsigned char data) { SPI_CS = 0; var = putcSPI(SPI_WRSR); //write status command var = putcSPI(data); //status byte to write SPI_CS = 1; //negate chip select } void busy_polling (void) { do { SPI_CS = 0; //assert chip select var = putcSPI(SPI_RDSR); //send read status command var = getcSPI(); //read data byte SPI_CS = 1; //negate chip select } while (var & 0x01); //stay in loop until !busy }
發表於: 2008/8/30 21:14
|
|||
|