| 
 | 
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? 
哈哈 
 
抱歉喔, 因為我對這個部分實在有太多疑問, 網站的資訊又分散各處 
實在是努力很久沒有結論哩, 希望不吝分享使用經驗喔,感激不盡 |   
 
 
 
 |