欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關(guān)于C語言unsigned int使用細節(jié)問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:883078 發(fā)表于 2021-10-30 15:29 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
使用unsigned int時為啥出現(xiàn)了圖片的兩種情況,1、用unsigned int cnt時判斷表達式>=時計數(shù)到768就進入if里了 2、用unsigned int cnt時判斷表達式==時計數(shù)到1000就進入if里了。二者理論上都應(yīng)該是計數(shù)到1000進入if才對,為啥會出現(xiàn)這種情況?



第一種情況



第二種情況

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

使用道具 舉報

沙發(fā)
ID:419909 發(fā)表于 2021-10-30 18:12 | 只看該作者
個人覺得,你應(yīng)該再審一下題,1和2是一樣的unsigned int cnt
回復(fù)

使用道具 舉報

板凳
ID:624769 發(fā)表于 2021-10-30 18:59 | 只看該作者
當(dāng)使用8位機系統(tǒng)的時候, 如果 中斷 和 主程序 都會操作同一個變量的時候,  那么, 這個變量應(yīng)該避免 超過一個字節(jié)(8位)。尤其是當(dāng)你使用的C語言,而不是匯編的話, 會有不可控的情況發(fā)生。
回復(fù)

使用道具 舉報

地板
ID:883242 發(fā)表于 2021-10-30 19:07 | 只看該作者
188610329 發(fā)表于 2021-10-30 18:59
當(dāng)使用8位機系統(tǒng)的時候, 如果 中斷 和 主程序 都會操作同一個變量的時候,  那么, 這個變量應(yīng)該避免 超過 ...

那就是原子操作的問題,樓主應(yīng)該檢查中斷里面用到cnt沒有。
回復(fù)

使用道具 舉報

5#
ID:401564 發(fā)表于 2021-10-30 22:37 | 只看該作者
unsigned int cnt是全局變量,而且cnt是在中斷中改變的
if (cnt==1000)雖然在仿真時候能給你想要的結(jié)果
但實際使用中,if (cnt>=1000)才是正確的
回復(fù)

使用道具 舉報

6#
ID:883242 發(fā)表于 2021-10-30 23:06 | 只看該作者
Y_G_G 發(fā)表于 2021-10-30 22:37
unsigned int cnt是全局變量,而且cnt是在中斷中改變的
if (cnt==1000)雖然在仿真時候能給你想要的結(jié)果
但 ...

都不對,你沒理解什么是原子操作。

對于8位單片機,16位的cnt不管是>=1000還是==1000都需要兩步比較,如果兩次中間插入中斷cnt++會破壞cnt的值,或者改變CY等標(biāo)志位的狀態(tài),導(dǎo)致比較結(jié)果錯誤。

避免這種錯誤有兩種解決辦法。1)比較前關(guān)中斷,比較后開中斷。2)把定時中斷時間間隔改成4ms,這樣cnt就可以用unsigned char類型,不管是比較還是++都可以在一個指令內(nèi)完成,不怕被中間打斷。
回復(fù)

使用道具 舉報

7#
ID:401564 發(fā)表于 2021-10-31 13:02 | 只看該作者
Hephaestus 發(fā)表于 2021-10-30 23:06
都不對,你沒理解什么是原子操作。

對于8位單片機,16位的cnt不管是>=1000還是==1000都需要兩步比較, ...

好的,你是對的.
回復(fù)

使用道具 舉報

8#
ID:883078 發(fā)表于 2021-10-31 19:05 | 只看該作者
Hephaestus 發(fā)表于 2021-10-30 23:06
都不對,你沒理解什么是原子操作。

對于8位單片機,16位的cnt不管是>=1000還是==1000都需要兩步比較, ...

謝謝大佬解決了我的疑問
回復(fù)

使用道具 舉報

9#
ID:883078 發(fā)表于 2021-10-31 19:05 | 只看該作者
謝謝各位的解答
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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