|
发表于 2014-5-9 22:57:39
|
显示全部楼层
嘗試一下:
spiwrite(uint8_t c) { //函數帶著值"c"進入
int8_t i; //本地 變數i
digitalWrite(_clk, HIGH); //輸出腳 "_clk" 輸出高電平
for (i=0; i<8; i++) { // 8次循環
digitalWrite(_clk, LOW); //輸出腳 "_clk" 輸出低電平
if (c & _BV(i)) { //以循環次數作"c"的位元位置,並檢查其元值,
digitalWrite(_mosi, HIGH); // 若是"1",輸出腳 "_mosi" 輸出高電平
} else { //若是"0"
digitalWrite(_mosi, LOW); //輸出腳 "_mosi" 輸出低電平
}
digitalWrite(_clk, HIGH); //輸出腳 "_clk" 輸出高電平
}
}
全個函數的功能,就是以帶入的值,把它的位元值逐一在"_mosi" 輸出腳輸出,而在每位元輸出前前"_clk" 會先變低電平,在"_mosi"腳輸出值後,以"_clk" 腳輸出高電平作確認。
|
|