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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

關于C語言unsigned int使用細節問題

查看數: 1779 | 評論數: 8 | 收藏 0
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2021-10-30 15:29

正文摘要:

使用unsigned int時為啥出現了圖片的兩種情況,1、用unsigned int cnt時判斷表達式>=時計數到768就進入if里了 2、用unsigned int cnt時判斷表達式==時計數到1000就進入if里了。二者理論上都應該是計數到1000進入if ...

回復

ID:883078 發表于 2021-10-31 19:05
謝謝各位的解答
ID:883078 發表于 2021-10-31 19:05
Hephaestus 發表于 2021-10-30 23:06
都不對,你沒理解什么是原子操作。

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

謝謝大佬解決了我的疑問
ID:401564 發表于 2021-10-31 13:02
Hephaestus 發表于 2021-10-30 23:06
都不對,你沒理解什么是原子操作。

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

好的,你是對的.
ID:883242 發表于 2021-10-30 23:06
Y_G_G 發表于 2021-10-30 22:37
unsigned int cnt是全局變量,而且cnt是在中斷中改變的
if (cnt==1000)雖然在仿真時候能給你想要的結果
但 ...

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

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

避免這種錯誤有兩種解決辦法。1)比較前關中斷,比較后開中斷。2)把定時中斷時間間隔改成4ms,這樣cnt就可以用unsigned char類型,不管是比較還是++都可以在一個指令內完成,不怕被中間打斷。
ID:401564 發表于 2021-10-30 22:37
unsigned int cnt是全局變量,而且cnt是在中斷中改變的
if (cnt==1000)雖然在仿真時候能給你想要的結果
但實際使用中,if (cnt>=1000)才是正確的
ID:883242 發表于 2021-10-30 19:07
188610329 發表于 2021-10-30 18:59
當使用8位機系統的時候, 如果 中斷 和 主程序 都會操作同一個變量的時候,  那么, 這個變量應該避免 超過 ...

那就是原子操作的問題,樓主應該檢查中斷里面用到cnt沒有。
ID:624769 發表于 2021-10-30 18:59
當使用8位機系統的時候, 如果 中斷 和 主程序 都會操作同一個變量的時候,  那么, 這個變量應該避免 超過一個字節(8位)。尤其是當你使用的C語言,而不是匯編的話, 會有不可控的情況發生。
ID:419909 發表于 2021-10-30 18:12
個人覺得,你應該再審一下題,1和2是一樣的unsigned int cnt

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本精品视频在线 | 免费国产网站 | 羞羞视频免费观 | 日韩成人在线观看 | 91一区二区在线观看 | 成人免费共享视频 | 蜜桃视频在线观看免费视频网站www | 欧美黄色精品 | 亚洲精品欧美一区二区三区 | 欧美日韩在线一区二区 | 亚洲欧美日韩精品久久亚洲区 | 先锋资源站 | 337p日本欧洲亚洲大胆鲁鲁 | 男女羞羞视频大全 | 在线一区二区国产 | 一区二区在线免费观看视频 | 91久久北条麻妃一区二区三区 | 国产激情视频网站 | 伊人网在线看 | 亚洲精品一区中文字幕 | 伊人久久综合 | 国产精品入口麻豆www | a免费观看 | 久久久精选| 日韩在线h | 亚洲最色网站 | 国产免费一区二区 | 日韩欧美三级电影在线观看 | 日韩精品一区二区三区高清免费 | 欧美二级| 成人午夜在线视频 | 欧美日韩1区 | 日韩国产专区 | 久久久天天 | 久久国产精品免费一区二区三区 | 婷婷综合色 | 国产在线观看 | 色噜噜狠狠色综合中国 | 日韩成人影院在线观看 | 国产精品国产三级国产aⅴ中文 | 亚洲在线一区 |