|
9#

樓主 |
發表於 2009-7-31 16:31:39
|
只看該作者
感謝這麼熱心幫助回答
我有很仔細看了您的程式碼, 發現其中有個我一直不明白的地方
I2C會有什麼MASTER/SLAVE的關係, 這是什麼呢?!
您的程式碼中有一行:
#define DS1307_I2C_ADDRESS 0×68
632的程式碼中也有一行
int compassAddress = 0x42 >> 1
// the default 7-bit slave address is 66 (0x42)
// shift the address 1 bit right,
// the Wire library only needs the 7 most significant bits for the address
上面這段英文的意思是說 :預設的7bit 紀錄IO 位址, 在SLAVE模式下是66?, 所以右移1bit變成33?
33 是指變成MASTER?! 這兩者的關係到底是什麼呢!?
我有改過, 不管有沒有那個>>1位移指令, 都沒反應
另外, 原廠程式碼說到
Wire.endTransmission(); // stop transmitting
delay(10); // 文件建議最少6秒??? 才能讀取傳回值, 可是我找的原始碼卻寫10ms?
Wire.requestFrom(compassAddress, 2);
而我看您的程式碼裡面, 這個delay是根本省掉了? 這是說根本不需要DELAY?
Wire.requestFrom(DS1307_I2C_ADDRESS, 7);<---沒delay就算了, 還一口氣讀7byte?
哈哈
抱歉喔, 因為我對這個部分實在有太多疑問, 網站的資訊又分散各處
實在是努力很久沒有結論哩, 希望不吝分享使用經驗喔,感激不盡 |
|