Electronics 板


LINE

我寫入兩行運算積分式子如下: ts=200e-6; oIo=5; int_ic=oint_ic+oIo*ts; oint_ic=int_ic; 大約經過56分鐘過後 oint_ic的值=32768 無法再繼續積分下去 不管是將電流或者是中斷時間ts以倍數的方式除掉 比如將中斷時間減少一倍,會電流縮小一倍 積分的值也會縮小一倍變成16384 或者寫入延遲時間讀入計算 比如中斷時間本來是200us取一個電流值 改成兩次在讀入回圈中 電流積分值也會縮小1倍 因此電流積分值oint_ic都會積分至一固定值就會停止 無法在運算下去 不知道有沒有大大有遇過這問題 衷心有人可以解答 這問題已經困擾我兩個月嚕~ 謝謝 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.138.180.32
1F:推 joy830:int 32768是他的範圍阿 11/11 00:02
2F:→ joy830:int是4 bytes = 16bits 11/11 00:04
3F:→ joy830:2^16 = 32768*2 因為正數分一半空間 負數分一半 11/11 00:05
4F:→ joy830:講這麼多廢話 把int oint_ic; 改成long oint_ic; 即可 11/11 00:06
5F:→ yan760422:我想大大可能誤解我的意思嚕 11/11 14:11
6F:→ yan760422:int_ic是我的變數~並不是我的宣告指令~我的宣告指令是 11/11 14:12
7F:→ yan760422:float~並不是int~並且此積分並不是值的問題~因為 11/11 14:12
8F:→ yan760422:不管事X2或者是/2~值會變成是32768X2或32768/2~ 11/11 14:13
9F:→ yan760422:會成比例的減少或者增加~所以並不是因為值的問題 11/11 14:14
10F:→ yan760422:布過還是感謝大大的說明~小弟由衷感謝 11/11 14:14
11F:→ joy830:float也是4 bytes 11/11 22:03
12F:→ joy830:你把float改成double試試看吧~~ 11/11 22:04
13F:推 utility:你好好的研究浮點格式..你就會發現這是必然的現象 11/12 20:50
14F:→ yan760422:把宣告float改成double~一樣無法解決此問題 11/17 14:48
15F:→ yan760422:我查過浮點運算格式~2812只有兩個變數宣告float與double 11/17 14:49
16F:→ yan760422:所以問題應該不是宣告格式錯誤~是其他問題~ 11/17 14:50
17F:→ yan760422:因此不知道問題為何?希望大大給點方向~ 11/17 14:50
18F:推 joy830:2812的數值 都是16bits 你可以再給他一個進位值 11/18 00:19
19F:推 joy830:int a,b; if(a>=32768){a=0; b++;} 類似這樣 11/18 00:23
20F:→ yan760422:這方法我已經測試過了~我把oint_ic積分值至15000時轉換 11/18 15:59
21F:→ yan760422:另一變數oint_ic2並且將原本的積分值oint_ic歸零~ 11/18 15:59
22F:→ yan760422:重新計算~不過他會等於oint_ic2+oint_ic=15000+1384 11/18 16:01
23F:→ yan760422:就停止運算~結果的積分計算值還是一樣~無法持續積分 11/18 16:01
24F:→ yan760422:並且我在中斷副程式timer1裡加入一變數kk當我程式執行過 11/18 16:02
25F:→ yan760422:一次中斷副程式KK則++~來計算進入中斷副程式有幾次~結果 11/18 16:02
26F:→ yan760422:他會停止在1677220~不過ts中斷時間改變多少~kk值都相同 11/18 16:03
27F:→ yan760422:因此我無法理解為何進入中斷副程式中會停止在1677220 11/18 16:04
28F:→ yan760422:就不再繼續執行了~不知道大大有沒有其他方法可以解決~ 11/18 16:05
29F:→ yan760422:由衷感謝 11/18 16:05
30F:推 joy830:15000+1384=0X4000 沒這麼巧合的值吧 11/18 19:30
31F:→ joy830:我依然覺得是數值的問題 至於1677220只是address 11/18 19:31
32F:→ joy830:我認為不具意義 加油 我想我幫不上忙了 11/18 19:31
33F:推 utility:oint_ic2+oint_ic=15000+1384.你是把這兩個float又加起來? 11/22 13:23
34F:→ utility:你的ts是固定值.其實不用每次都做乘又加的動作.只要加就好 11/22 13:25
35F:→ yan760422:我要把oint_ic積分後再做處理 11/22 14:44
36F:→ yan760422:ts我曾經有x一個倍數~後面在除回來~但一樣有問題~ 11/22 14:45
37F:→ yan760422:接著我有想過用大大的方法~我寫了一個迴圈~讓counter 11/22 14:46
38F:→ yan760422:數了1萬次再將進入積分式子內~也就是延遲一秒~再將回授 11/22 14:47
39F:→ yan760422:物理量讀回來做處理~但是相同的問題還是存在著~無法解決 11/22 14:47
40F:→ yan760422:如果是數值的問題~那麼我將除以一倍數~就應該不會有問題 11/22 14:49
41F:→ yan760422:但是他會數值會隨倍數成長 11/22 14:49
42F:→ yan760422:後來又測試一下次數的問題~發現執行會停止在16777220次 11/22 14:50
43F:→ yan760422:不管隨倍數改變或者是利用變數取代 11/22 14:50
44F:→ yan760422:依舊存在此問題~積分無法繼續累加~所以這兩個月我測試 11/22 14:51
45F:→ yan760422:很多方法~還是找不到問題的所在~ 11/22 14:52
46F:→ yan760422:不過很感謝兩位大大~提供的方法~在下感激不盡 11/22 14:52
47F:推 utility:好像有一個long double的可以用..64-bit 11/22 17:23
48F:推 utility:其實你只要是用浮點就會有你的問題..用long double的話. 11/22 21:29
49F:→ utility:只是延後這個問題的產生..不過因為可以增加很多累加次數.. 11/22 21:31
50F:→ utility:所以可以當作沒這個問題存在.long double是你的救命神丹. 11/22 21:32
51F:→ yan760422:這個我試過嚕~其實一開始我的變數宣告都是short~ 11/23 11:12
52F:→ yan760422:如果是浮點運算的話有兩個宣告指令是float&double 11/23 11:12
53F:→ yan760422:我將short改成int~然後float改成double~運算結果 11/23 11:14
54F:→ yan760422:還是一樣~並沒有什麼改變~看樣子好像跟變數宣告長度無關 11/23 11:14
55F:→ sneak: oint_ic2+oi https://muxiv.com 08/13 19:05
56F:→ sneak: 如果是數值的問題~那麼 https://daxiv.com 09/17 23:00
57F:→ sneak: 但是他會數值會隨倍數成 https://daxiv.com 11/11 16:01
58F:→ sneak: 不管事X2或者是/2~ https://daxiv.com 01/04 22:14







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job 或 站內搜尋

TOP