Re: dspic要用I2C讀24LC04B要使用PAGE的方式
|
||||
---|---|---|---|---|
版主
|
"dsPIC30F Module Training - I2C 教材及練習 "
可以在這裡下載: http://www.microchip.com.tw/modules/mydownloads/viewcat.php?cid=4
發表於: 2008/3/18 8:16
|
|||
|
Re: dspic要用I2C讀24LC04B要使用PAGE的方式
|
||||
---|---|---|---|---|
初級會員
|
太感謝了.......又燃起一線希望...
小弟本來還想乾脆自己寫程模擬I2C出來的...
發表於: 2008/3/17 18:55
|
|||
|
Re: dspic要用I2C讀24LC04B要使用PAGE的方式
|
||||
---|---|---|---|---|
版主
|
這些I2C的函數部是已經在 I2CSbus.c 的程式裡嗎? 已經提供了。
發表於: 2008/3/17 9:56
|
|||
|
Re: dspic要用I2C讀24LC04B要使用PAGE的方式
|
||||
---|---|---|---|---|
初級會員
|
不好意思...問了一個笨問題...
原來函式裡面的code要自己寫的.... 謝謝各位大大的幫助....
發表於: 2008/3/16 21:21
|
|||
|
Re: dspic要用I2C讀24LC04B要使用PAGE的方式
|
||||
---|---|---|---|---|
版主
|
到左邊檔案下載裡有 "dsPIC30F Module Training - I2C 教材及練習" 內有 code example 可供參考。
http://www.microchip.com.tw/modules/mydownloads/viewcat.php?cid=4
發表於: 2008/3/14 16:50
|
|||
|
Re: dspic要用I2C讀24LC04B要使用PAGE的方式
|
||||
---|---|---|---|---|
初級會員
|
不好意思...針對pic我是初學者...
之前在使用MCU時都是用程式模擬出I2C的.... 現在使用PIC24FJ32....是否只要設定好I2C的暫存器... 再把要傳的數值寫入傳送暫存器... PIC IC就會自動產生SDA與SCL把資料寫入到EEPROM了嗎... 因為小弟在I2C方面一直弄不出來..... 還是小弟的I2C暫存器設定有問題....
發表於: 2008/3/14 16:11
|
|||
|
Re: dspic要用I2C讀24LC04B要使用PAGE的方式
|
||||
---|---|---|---|---|
版主
|
http://www.microchip.com.tw/example.htm
程式範例裡的 11.1 就有 PAGE Read & Write 的 code example, 雖然程式是用 C18 寫的但原理與流程是一樣的。
發表於: 2008/2/20 14:18
|
|||
|
dspic要用I2C讀24LC04B要使用PAGE的方式
|
||||
---|---|---|---|---|
高級會員
|
小弟在使用I2C 讀24LC04B,RANDOM READ 讀取沒有問題
可是想改成PAGE READ的可是卻沒辦法讀取,可否告知小弟那裡程式寫錯了嗎? 謝謝 IdleI2C( ) ; StartI2C( ) ; while ( I2CCONbits.SEN) ; IFS0bits.MI2CIF = 0 ; MasterWriteI2C(0xA0) ; // Mask bit 0 -> Write command while(! IFS0bits.MI2CIF ) ; IFS0bits.MI2CIF = 0 ; MasterWriteI2C(0x10) ; //資料位置 while(! IFS0bits.MI2CIF ) ; IFS0bits.MI2CIF = 0 ; RestartI2C( ) ; while ( I2CCONbits.RSEN) ; IFS0bits.MI2CIF = 0 ; MasterWriteI2C(0xA1) ; // Set bit 0 for "Read" command while(! IFS0bits.MI2CIF ) ; IFS0bits.MI2CIF = 0 ; Temp_Buffer3 = MasterReadI2C( ) ; //第一筆資料 while(! IFS0bits.MI2CIF ) ; IFS0bits.MI2CIF = 0 ; Temp_Buffer4 = MasterReadI2C( ) ; //第二筆資料 while(! IFS0bits.MI2CIF ) ; IFS0bits.MI2CIF = 0 ; Temp_Buffer5 = MasterReadI2C( ) ; //第三筆資料 while(! IFS0bits.MI2CIF ) ; IFS0bits.MI2CIF = 0 ; NotAckI2C( ) ; while(! IFS0bits.MI2CIF ) ; IFS0bits.MI2CIF = 0 ; StopI2C( ) ; while ( I2CCONbits.PEN ) ;
發表於: 2008/2/19 21:47
|
|||
|