[問題] 數值溢位的問題

看板Electronics作者 (阿慶)時間14年前 (2011/04/22 20:47), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串1/1
※ [本文轉錄自 ASM 看板 #1DiNX7op ] 作者: scrush (阿慶) 看板: ASM 標題: [問題] 數值溢位的問題 時間: Fri Apr 22 20:44:53 2011 我目前使用encoder需要進行連續累加的動作,但cpu的count只有16位元,超過65535就會 自動變成0,想請教一下要怎樣做才可以繼續累加下去? 我試過一些方法都試不大出來,我相信一定是在中斷這邊著墨,只可惜還是沒有成功, 可能是我觀念上有點問題,能否提供一些意見參考,謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.166.115 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.37.166.115

04/22 20:56, , 1F
0會怎麼樣嗎? 可以完整說一下你的程式動作嗎?
04/22 20:56, 1F

04/22 21:45, , 2F
用c還是用asm 用c就靠編譯器 用asm就靠自己
04/22 21:45, 2F

04/22 22:44, , 3F
不管用C或是asm,就如果count == 65535就inc var
04/22 22:44, 3F

04/22 22:44, , 4F
要判斷的時候就拿兩個值來判斷
04/22 22:44, 4F

04/22 22:45, , 5F
自己手動擴展成32bit就好啦
04/22 22:45, 5F

04/23 00:40, , 6F
用C的話~最笨的方法就是把值除以65536得到商數跟餘數吧
04/23 00:40, 6F
文章代碼(AID): #1DiNZDRe (Electronics)