• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::

論壇索引


Board index » All Posts (mimico)




一個關於讀取和寫入的程式……
#1
新會員
新會員


最近小弟我TRY了一個寫入和讀取EEPROM(24LC08)的程式:
分別是兩個function:
I2C_WR(), I2C_RD

而程式的內容如下:

void I2C_Wr() //將0x77寫到位置0x01
{
SENDSTART();
SEND_CONTR_BYTE(0XA0);
SEND_ADDRESS(0X01);
SEND_RESTART();
SEND_DATA(0X77);
SEND_STOP();
return;
}

char I2C_Rd() //讀取位置0x01的資料。
{
SENDSTART();
SEND_CONTR_BYTE(0XA0);
SEND_ADDRESS(0X01);
SEND_RESTART();
SEND_CONTR_BYTE(0XA1);
START_RECEI();
SEND_ACK(NOTACK);
SEND_STOP();
return SSPBUF;
}



main() // 很順利的讀取到值
{
char data;
initial_i2c();
data=I2C_Rd();
}

---------------------------------------------------------------------

main() // 很順利的將值寫入,為什麼我會知道很順利的寫入
{ // 因為我用燒錄器把EEPROM的值讀出來。
initial_i2c();
I2C_Wr();
}

----------------------------------------------------------------------

問題來了… 這樣就完全讀不到資料…
main()
{
char data;
initial_i2c();
I2C_Wr();
data=I2C_Rd();
}

自己大概有檢查了一下,問題是在I2C_Rd()裡的兩行巨集

SEND_CONTR_BYTE(0XA0);
SEND_ADDRESS(0X01);

這兩行巨集中各有檢查是否有收到EEPROM的ACK....
巨集內容的檢查的程式是這樣的:
while( (SSPIF==0) || (ACKSTAT==1) );
當兩個情況階不成立就跳出迴圈。表示有收到ACK才繼續…

結果是一直收不到ACK.....why ????
還有什麼沒有檢查的flag漏了或者沒有執行的動作 ???


但是自己也作了一個實驗…
當我在寫入與讀取的兩個function中加入了一個delay(),
結果......天ㄚ…居然可以了…這又是怎麼了…????






發表於: 2004/7/24 9:10
頂部


Re: Acknowledge Polling 的用途?
#2
新會員
新會員


那ACK Pollinge一般的作法會因為不同的EEPROM有所不同嘛?
就24LC08來說ACK Polling的作法第一個動作是send write command, 那control byte格式中需要包含是對那個memory block?

發表於: 2004/7/23 10:16
頂部


Acknowledge Polling 的用途?
#3
新會員
新會員


在EEPROM 24LC08的SPEC. 中有一段描敘ACK Polling內容?請問有人知道它的功能和目的為何?

發表於: 2004/7/20 18:57
頂部






:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------