找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3181|回復(fù): 11
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)24c02讀取問(wèn)題 有幾句源代碼不理解

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:289989 發(fā)表于 2018-4-8 17:49 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
uchar iicre_byte(void)  
{  
uchar i;
uchar dat;
scl=0;  
delay();  
sda=1;  
delay(); //////////???????????
     for(i=0;i<8;i++)  
     {  
        scl=1;  
        delay();  
        dat=dat<<1;  
        if(sda)  
       {  
        dat++;
       }  
        scl=0;  
       delay();  
      }  
return dat;
}




uchar read_byte()
{
                uchar i,k;


                for(i=0;i<8;i++)
                {
                scl=1;      
                k=(k<<1)|sda;   
                scl=0;
                }
                scl=0;
                sda=1;
                return k;
}
這兩個(gè)程序都可以完成讀取。第一個(gè)for前面加的scl,delay,sda,delay是什么意思?要不要不是都行嗎,求指點(diǎn)。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:289989 發(fā)表于 2018-4-8 22:05 | 只看該作者
或者說(shuō)按我的理解應(yīng)該放在for語(yǔ)句后面~~~前后一樣?
回復(fù)

使用道具 舉報(bào)

板凳
ID:141497 發(fā)表于 2018-4-8 23:47 | 只看該作者
個(gè)人覺(jué)得,怎么寫(xiě)代碼沒(méi)關(guān)系,只要能滿(mǎn)足I2C協(xié)議條件就行。
回復(fù)

使用道具 舉報(bào)

地板
ID:282439 發(fā)表于 2018-4-9 07:57 | 只看該作者
前面一個(gè)比較安全。后面一個(gè)與主頻相關(guān)。因?yàn)镮2C協(xié)議對(duì)時(shí)間間隔是有要求的。
回復(fù)

使用道具 舉報(bào)

5#
ID:164602 發(fā)表于 2018-4-9 08:29 | 只看該作者
你將I2C通訊時(shí)序搞清楚了,這些語(yǔ)句及排列就可以搞明白了。
第一個(gè)程序,可能有程序員自己的習(xí)慣,編寫(xiě)的程序留有余地——時(shí)鐘信號(hào)與數(shù)據(jù)信號(hào)間,留了反應(yīng)時(shí)間。
第二個(gè)程序,有全盤(pán)考慮,在其它操作時(shí),已經(jīng)先確定了兩線(xiàn)的信號(hào),所以這里不再設(shè)置。

可以這樣說(shuō):第一個(gè)程序移植性較好,第二段程序移植性不好。你可以在網(wǎng)上找找I2C的通用程序,那個(gè)移植性肯定非常好,對(duì)照一下,可以學(xué)到很多東西。
回復(fù)

使用道具 舉報(bào)

6#
ID:289989 發(fā)表于 2018-4-9 08:52 | 只看該作者
51jia 發(fā)表于 2018-4-8 23:47
個(gè)人覺(jué)得,怎么寫(xiě)代碼沒(méi)關(guān)系,只要能滿(mǎn)足I2C協(xié)議條件就行。

我刪掉第九位sda的置高程序也沒(méi)有問(wèn)題~干了,條件這么寬松嗎,還是我沒(méi)有真正理解?
回復(fù)

使用道具 舉報(bào)

7#
ID:304212 發(fā)表于 2018-4-9 10:01 | 只看該作者
嚴(yán)格按照時(shí)序來(lái)寫(xiě)就沒(méi)錯(cuò)
回復(fù)

使用道具 舉報(bào)

8#
ID:304266 發(fā)表于 2018-4-9 10:45 | 只看該作者
zh俄格問(wèn)題有點(diǎn)難,研究研究
回復(fù)

使用道具 舉報(bào)

9#
ID:295343 發(fā)表于 2018-4-9 13:29 | 只看該作者
適當(dāng)?shù)亩虝貉訒r(shí)有助于系統(tǒng)穩(wěn)定,適當(dāng)重復(fù)操作可以提高系統(tǒng)的耐操性。高手寫(xiě)的程序和新手寫(xiě)的程序的差別。
回復(fù)

使用道具 舉報(bào)

10#
ID:289989 發(fā)表于 2018-4-9 14:19 | 只看該作者
HC6800-ES-V2.0 發(fā)表于 2018-4-9 08:29
你將I2C通訊時(shí)序搞清楚了,這些語(yǔ)句及排列就可以搞明白了。
第一個(gè)程序,可能有程序員自己的習(xí)慣,編寫(xiě)的 ...

謝謝了。
我查了查,他們說(shuō)第一個(gè)的那幾句是置數(shù)據(jù)線(xiàn)為輸入方式。最近有點(diǎn)忙,有時(shí)間在細(xì)細(xì)的查查
回復(fù)

使用道具 舉報(bào)

11#
ID:141497 發(fā)表于 2018-4-9 23:26 | 只看該作者
Yubug 發(fā)表于 2018-4-9 08:52
我刪掉第九位sda的置高程序也沒(méi)有問(wèn)題~干了,條件這么寬松嗎,還是我沒(méi)有真正理解?

I2C協(xié)議只要時(shí)間大于4.7us就行。
回復(fù)

使用道具 舉報(bào)

12#
ID:304623 發(fā)表于 2018-4-10 16:55 | 只看該作者
這個(gè)學(xué)習(xí)的時(shí)候老師說(shuō)得有5us的時(shí)延,有嚴(yán)格的時(shí)序,你可以看看時(shí)序圖
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表