久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

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

QQ登錄

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

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

51單片機(jī)數(shù)據(jù)類(lèi)型問(wèn)題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
我用51單片機(jī)驅(qū)動(dòng)ds18b20讀取溫度,寫(xiě)傳感器驅(qū)動(dòng)程序使如果把i定義為unsigned int程序可以正確讀出溫度數(shù)據(jù),但是如果把i定義為unsigned char程序高八位低八位全部只能讀出255,并沒(méi)有發(fā)現(xiàn)什么原因,個(gè)人認(rèn)為問(wèn)題出現(xiàn)在溢出上,但是不知道哪里出現(xiàn)了溢出,希望各位可以指導(dǎo)學(xué)習(xí)一下。
void Write_One_Byte(uchar dat)
{
        uint i;
        uchar j;
        bit testb;
        for(j=1;j<=8;j++)
        {
                testb=dat&0x01;
                dat=dat>>1;
                if(testb)
                {
                        DQ=0;
                        i++;
                        i++;
                         DQ=1;
                        i=8;
                        while(i>0)
                                i--;
                }
                else
                {
                        DQ=0;
                        i=8;
                        while(i>0)
                                i--;
                        DQ=1;
                        i++;
                        i++;
                }
        }
}



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

使用道具 舉報(bào)

沙發(fā)
ID:235200 發(fā)表于 2019-9-6 19:14 | 只看該作者
程序中的i僅是作為延時(shí)的計(jì)數(shù),確定DQ數(shù)據(jù)線高低電平的時(shí)長(zhǎng),至于i定義為8位和16位的不同,光從本子程序中看沒(méi)有什么問(wèn)題,需考慮整體程序中是否有中斷影響i寄存器中的數(shù)據(jù),造成延時(shí)不一致,是否符合一線制數(shù)據(jù)讀寫(xiě)的時(shí)序
回復(fù)

使用道具 舉報(bào)

板凳
ID:155507 發(fā)表于 2019-9-6 21:08 | 只看該作者

DS18B20的初始化時(shí)序



DS18B20的讀時(shí)序


DS18B20的寫(xiě)時(shí)序




變量改了 延時(shí)改了  縮短了
unsigned int  2個(gè)字節(jié)unsigned char 一個(gè)字節(jié)   處理的時(shí)間基本上是縮短了,肯定出問(wèn)題的


最重要的就是學(xué)會(huì)看數(shù)據(jù)手冊(cè)

回復(fù)

使用道具 舉報(bào)

地板
ID:67199 發(fā)表于 2019-9-6 21:47 | 只看該作者
同意樓上,i作為延時(shí)使用,編譯器編譯時(shí)int char的處理方式不同,編譯出的代碼長(zhǎng)度也不同,運(yùn)行時(shí)所用時(shí)間也就不同了,而一線制對(duì)時(shí)序要求有點(diǎn)嚴(yán),造成不能正確讀寫(xiě)DS18B20.
回復(fù)

使用道具 舉報(bào)

5#
ID:608774 發(fā)表于 2019-9-7 15:41 | 只看該作者

比較同意樓上的看法,應(yīng)該將i重新定義一下或者多定義幾個(gè)其他變量,這樣編譯器能夠運(yùn)行起來(lái)更快更方便,也不容易出錯(cuò),子程序本身沒(méi)有太大問(wèn)題
回復(fù)

使用道具 舉報(bào)

6#
ID:213173 發(fā)表于 2019-9-8 06:07 | 只看該作者
在12M時(shí)鐘條件下,CPU處理uint i; i++;需要3us,處理uchar i; i++;只需要1us。樓主改變i的數(shù)據(jù)類(lèi)型也就改變了i++;作為小延時(shí)的時(shí)間。ds18b20對(duì)時(shí)序要求非常高,所以會(huì)出問(wèn)題。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一级特黄真人毛片 | 亚洲一区二区三区在线免费观看 | 午夜视频免费在线观看 | 99精彩视频 | 美女国内精品自产拍在线播放 | 草久久 | 久久亚洲春色中文字幕久久久 | 成人二区三区 | 亚洲一区二区中文字幕 | 亚洲精品一区av在线播放 | 国产精品欧美一区二区 | 欧美成年黄网站色视频 | 精品一区二区三区av | 精久久久久 | 欧美日韩中| 欧美成人在线网站 | 99re在线视频精品 | 中文字幕精品视频 | 亚洲免费影院 | 国产精品久久久亚洲 | 精品亚洲一区二区三区 | 中文字幕免费中文 | 国产精品日韩欧美一区二区三区 | 毛色毛片免费看 | 久久人人网 | 日韩av免费在线电影 | 国产精品久久久久久一区二区三区 | 亚洲中午字幕 | 91精品国产91久久久久青草 | 久久精品二区亚洲w码 | 久久国产亚洲 | 成年人国产在线观看 | 懂色tv| 午夜小视频在线观看 | 少妇久久久久 | 国产资源一区二区三区 | av一二三区| 99久久婷婷 | av中文字幕在线 | 日日摸夜夜爽人人添av | 9999精品视频 |