Re: SPI out 需要檢查BF旗標嗎 ?
|
||||
---|---|---|---|---|
資深會員
|
R大
那個BF位元在SIM底下是不能被檢查的嗎 我用SIM去測試,結果都停在 while( !SSPSTATbits.BF ); 迴圈跳不出來ㄝ Attach file: (0.00 KB)
發表於: 2009/2/20 10:12
|
|||
|
Re: SPI out 需要檢查BF旗標嗎 ?
|
||||
---|---|---|---|---|
資深會員
|
#if defined (SPI_V1) || defined (SPI_V4)
void putsSPI( unsigned char *wrptr ) { while ( *wrptr ) // test for string null character { SSPBUF = *wrptr++; // initiate SPI bus cycle while( !SSPSTATbits.BF ); // wait until 'BF' bit is set } } #endif 另外,上面是寫入一整串資料用的內建程式 寫入一整串資料時,就沒像WriteSPI()那樣做WCOL的檢查 或許在第2BYTE以後不會發生WCOL 但是它能保證寫入第1個 BYTE資料時,絕對不會發生WCOL嗎??
發表於: 2009/2/19 14:37
|
|||
|
SPI out 需要檢查BF旗標嗎 ?
|
||||
---|---|---|---|---|
資深會員
|
如下圖,是C18 內建的SPI函數的 WriteSPI() 的程式
那個 SSPSTAT.BF 的旗標是不是該改成傳送前就先檢查比較好 寫入後就檢查的話, 程式不就會一直等在那邊,等SPI傳送完才能繼續執行後面的程式嗎? 那樣太不合理了 如果人家想用中斷棋標,在中斷程式裡面傳送的話,不就多浪費時間在那邊等待了嗎 另外,SPEC還特別註明說BF只有在接收時才會用到 那,傳送時我們也去檢查是怎樣? Attach file: (0.00 KB)
發表於: 2009/2/19 14:23
|
|||
|