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


Browsing this Thread:   1 Anonymous Users






Re: 有關W401 ex 6-2c
#4
版主
版主


查看用戶資訊
因為在做 ACK 的檢查時,若 ACK=1 時送Restart 時露寫了 STOP Condiction 所以會再成錯誤,新修改後的ACK check 部分如下:

void EEPROM_ACK(unsigned char ctrl)
{
    
int Wait;

    
Wait ;

while(
Wait)
 {
    
IdleI2C();                         // ensure module is idle
      
StartI2C();                // Start condition
    
I2C_Done();                // Wait Start condition completed

 
    
if (WriteI2C(ctrl)==0Wait=0;        // Write Control to EEPROM (WRITE) return 0 Ack, -1 Nack
    
I2C_Done();
  
    
StopI2C();                          // send STOP condition
    
I2C_Done();                // wait until stop condition is over 
 

}

發表於: 2008/6/20 15:20
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 有關W401 ex 6-2c
#3
新會員
新會員


查看用戶資訊
Hi byte addr 已加上 問題不在此處
ex6-2.c之101行及123行
EEPROM_ACK(0xA0);刪除
程式就OK
不知未何要在
EEPROM_Write (0xA0,EE_Addr,Rec_Data);
之後加上
EEPROM_ACK(0xA0);

發表於: 2008/6/10 21:06
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 有關W401 ex 6-2c
#2
高級會員
高級會員


查看用戶資訊
如果是EEPROM的練習,
我記得RTC's APP001 是 24LC02 (2kB)
自己購買's APP001 是 24LC32(32kB)
差別在 送cmd時要多 High byte addr

不知道你是不是遇到這個問題



希望有幫助

發表於: 2008/6/9 13:15
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


有關W401 ex 6-2c
#1
新會員
新會員


查看用戶資訊
版主 你好:
有關W401 ex 6-2c
void EEPROM_ACK(unsigned char ctrl)
{
int i;
IdleI2C(); // ensure module is idle
StartI2C(); // Start condition
I2C_Done(); // Wait Start condition completed
WriteI2C(ctrl); // Write Control to EEPROM (WRITE)
I2C_Done(); // Clear SSPIF flag
while (SSPCON2bits.ACKSTAT) //
{
for (i=0;i<100;i++); // Delay for next Repet-Start
RestartI2C(); // initiate Repet-Start condition
I2C_Done(); // Wait Repet-Start
WriteI2C(ctrl); // Write Control to EEPROM (WRITE)
}
I2C_Done(); // Clear SSPIF flag
StopI2C(); // send STOP condition
I2C_Done(); // wait until stop condition is over
}

執行時一直在第三I2C_Done();跑回圈
請問第二I2C_Done();已將SSPIF clear
如果沒進while
第三I2C_Done();將一直等待SSPIF = 1
這是BUG 嗎?

發表於: 2008/6/8 21:25
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

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... ]

教育訓練中心

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