• slider image 514
  • slider image 516
  • slider image 517
  • slider image 518
  • slider image 519
:::


Browsing this Thread:   2 Anonymous Users






Re: 新手C語言求救~~急
#10
新會員
新會員


查看用戶資訊
實在是太感謝你了Eigen!!^_^

我試了一下果然是Reset的問題!!

雖然犯了粉白痴的錯誤不過這也再次證明了單晶片是沒有靈異事件的!!

發表於: 2008/9/12 10:17
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 新手C語言求救~~急
#9
資深會員
資深會員


查看用戶資訊
I2C 需要 reset


我猜你該不會一下子用組語試,一下子用c 試,用c 試一直試不出來,然後就一直改,一直試

就是沒有 reset i2c

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


Re: 新手C語言求救~~急
#8
新會員
新會員


查看用戶資訊
上面那張圖上面那組波形是用組合語言寫的有正確的ACK,下面那一組是用C語言寫的卻沒有ACK,SDA一直在hi.
到底是哪理出了錯呢?

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


Re: 新手C語言求救~~急
#7
新會員
新會員


查看用戶資訊
拍下視波器的畫面了

Attach file:



jpg  (0.00 KB)


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


Re: 新手C語言求救~~急
#6
新會員
新會員


查看用戶資訊
時序圖來了

Attach file:



jpg  (0.00 KB)


發表於: 2008/9/10 16:00
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 新手C語言求救~~急
#5
新會員
新會員


查看用戶資訊
板主大大
因為在公司所以不方便把實際的圖PO上來.
start 時 SDA與SCL間格8us.
SCL Hi 約 8us.
SCL Lo 約 10us.
*這不是for EEPROM的

C語言
SDA___ ___ _________
| | | |
|_____________________| |__|
SCL_____ _ _ _ _ _ _ _ _ _____
| | | | | | | | | | | | | | | | | |
|_| |_| |_| |_| |_| |_| |_| |_| |_|


組合語言
SDA___ ___
| | |
|_____________________| |___________
SCL_____ _ _ _ _ _ _ _ _ _____
| | | | | | | | | | | | | | | | | |
|_| |_| |_| |_| |_| |_| |_| |_| |_|

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


Re: 新手C語言求救~~急
#4
版主
版主


查看用戶資訊
那在ACK訊號之前的訊號兩著比較起來有何不同?

Idle --> Start Conditional --> Command --> Slave ACK ....

有 Timming 嗎? PO 上來瞧瞧。

發表於: 2008/9/10 14:45
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 新手C語言求救~~急
#3
新會員
新會員


查看用戶資訊
板主大大
我照著你說的做他還是不給我回應耶!!

我有對照過用組合語言寫的波形和用C語言寫的波形,
唯一不一樣的就是再ACK的時候組合語言是low,
C語言卻是high.....

組合語言我是用MPLAB內建的
C語言我是用HI-TECH

發表於: 2008/9/10 14:23
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 新手C語言求救~~急
#2
版主
版主


查看用戶資訊
I2C 是 Open Drain 的架構,如果你用一般的 I/O 方式去驅動時,當對方回 ACK 時此時 SDA 為輸入腳沒有 Pull up 電組要怎樣控制 I2C。
我想在使用I/O 去模擬 I2C 的功能時,須先將 SDA & SCL 先寫入0 後再設定成輸入模式。此時I2C 的 Hi-L0w 變化是直接控制TRIS的輸出入功能來讓 I2C bus 呈現 Hi/Low 的變化。也就是當SDA腳 TRIS 為輸入功能是會透過外面的 Pull-up 電阻拉成 Hi Level;當 SDA 設TRIS 為輸出時,原先寫入的 0 就會將 I2C bus 拉成 low 的。所以I/O 模擬 I2C 功能並不可以直接輸出 Hi/Low 的方式控制,這樣很容易將 Slave 短路的。

我相信 Timing 一定有錯,詳細用示波器分析一下 SDA 與 SCL 上下緣的關係,注意I2C規範裡 : 當SCL 為 Hi 時 SDA 試不能有任何變化的。

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


新手C語言求救~~急
#1
新會員
新會員


查看用戶資訊
各位大大麻煩幫我看一下下面那一段程式,我是使用16F876外接4M震盪,我用組合語言寫是會有ACK的可是換成C語言卻沒有,用視波器看波形也正常,可以告訴我為什麼嗎?
公司要求我一定要用軟體做!!
/******I2C起始命令**************/
void I2cStart (void)
{

SDA = 1;
SCL = 1;
nop();
nop();
SDA = 0;
nop();
nop();
nop();
nop();
SCL = 0;
}
/*******I2C 8bit 輸出***********/
void I2cBytOut (unsigned char data)
{
unsigned char i;
for (i= 0; i< 8; i++)
{
SCL = 0;
if(data & 0x80)
{
SDA = 1;
}
else
{
SDA = 0;
}
nop();
SCL = 1;
nop();
nop();
nop();
nop();
SCL = 0;
data <<= 1;
}
SDA = 0;
}
/******I2C ACK 回應信號判斷****/
void I2cAck(void)
{
SDA_pin = 1; //SDA腳設輸入
nop();
SCL =1;
while (SDA == 1);
SCL =0;
SDA_pin = 0; //SDA腳設輸出
}
/******I2C 寫入1Byt***********/
void I2cWrite(unsigned char data_buffer, unsigned char i2caddress)
{
unsigned char x;
x =0x02;
I2cStart();
I2cBytOut(x);
I2cAck();
I2cBytOut(i2caddress);
I2cAck();
I2cBytOut(data_buffer);
I2cAck();
I2cStop();
}

發表於: 2008/9/10 8:41
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... ]

教育訓練中心

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