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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1130|回復: 10
打印 上一主題 下一主題
收起左側

請教這段代碼的算法錯在哪?

[復制鏈接]
跳轉到指定樓層
樓主
ID:1136941 發表于 2025-1-8 18:14 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式

        fdsj(hour,min);//放電時間顯示
        fd_AH=((hour*60+min)*FD_A)/60/10;//放電容量計算
        FDdisp_AH(fd_AH);//放電容量顯示

        hour-----小時
        min------分鐘
        FD_A----放電電流
        fd_AH---放電容量
      
        這是一臺DIY大功率智能脈沖快速充電機代碼中放電容量計算的代碼,測試發現fd_AH(放電容量)隨著時間一增加到108AH就歸零從頭開始計算,這樣
        108AH以上的電池就不能準確顯示了,百思不得其解,請指點。
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:844772 發表于 2025-1-9 09:02 | 只看該作者
fd_AH的變量聲明是啥? 編譯程序優化打開沒?要不先把fd_AH=((hour*60+min)*FD_A)/60/10;//放電容量計算 改成fd_AH=(hour/60+min/600)*FD_A)試試?
回復

使用道具 舉報

板凳
ID:1073939 發表于 2025-1-9 09:12 | 只看該作者
估計樓主這4個變量類型為unsigned char。
(hour*60+min) 最大 255
FD_A 最大255
所以fd_AH經過計算(255*255)/60/10=108;
要把這幾個變量類型改為unsigned int
回復

使用道具 舉報

地板
ID:1136941 發表于 2025-1-9 12:30 | 只看該作者
glinfei 發表于 2025-1-9 09:02
fd_AH的變量聲明是啥? 編譯程序優化打開沒?要不先把fd_AH=((hour*60+min)*FD_A)/60/10;//放電容量計算 改 ...

fd_AH的變量聲明是uint,放電容量計算 改成fd_AH=((hour/60+min/600)*FD_A)后計算結果始終是零不變化。
回復

使用道具 舉報

5#
ID:1136941 發表于 2025-1-9 12:36 | 只看該作者
ydatou 發表于 2025-1-9 09:12
估計樓主這4個變量類型為unsigned char。
(hour*60+min) 最大 255
FD_A 最大255

hour和min的變量類型是uchar,  FD_A和 fd_AH是uint,現在把hour,min也改為uint后還是一到108就歸零了。
回復

使用道具 舉報

6#
ID:161164 發表于 2025-1-10 14:58 | 只看該作者
FDdisp_AH的傳參類型是啥?
回復

使用道具 舉報

7#
ID:1136941 發表于 2025-1-10 17:12 | 只看該作者
lkc8210 發表于 2025-1-10 14:58
FDdisp_AH的傳參類型是啥?

是uint
回復

使用道具 舉報

8#
ID:1073939 發表于 2025-1-11 08:50 | 只看該作者
太陽雨ZW 發表于 2025-1-9 12:36
hour和min的變量類型是uchar,  FD_A和 fd_AH是uint,現在把hour,min也改為uint后還是一到108就歸零了。

51確實容易出現計算錯誤。
試試這樣
unsigned long i=hour*60+min;
i*=FD_A;
fd_AH/=600;
FDdisp_AH(fd_AH);/
回復

使用道具 舉報

9#
ID:343102 發表于 2025-1-11 10:57 | 只看該作者
變量計算過程中也不能溢出。
我也遇到過這種情況,摸索好久才解決。
可把變量定義為ulong,或先除后乘,先減后加,防止計算過程中數值溢出無法存放。
我以前就是為了提高精度采用先乘后除,結果到一定數值后突然變0,經過追蹤發現這個數值是65535,這才醒悟。
回復

使用道具 舉報

10#
ID:1136941 發表于 2025-1-11 11:07 | 只看該作者
ydatou 發表于 2025-1-11 08:50
51確實容易出現計算錯誤。
試試這樣
unsigned long i=hour*60+min;

多謝指點,按照你的算法正常了,非常感謝!
回復

使用道具 舉報

11#
ID:1136941 發表于 2025-1-11 12:08 | 只看該作者
風158 發表于 2025-1-11 10:57
變量計算過程中也不能溢出。
我也遇到過這種情況,摸索好久才解決。
可把變量定義為ulong,或先除后乘, ...

謝謝回復,按照8樓的算法就正常了。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 四虎永久免费在线 | 亚洲精品日韩精品 | 高清人人天天夜夜曰狠狠狠狠 | 久久精品中文 | 激情 一区| 久久精品中文字幕 | 亚洲精品一区在线观看 | 一区二区三区在线免费观看 | 欧美视频一区二区三区 | 欧美色a v| 9久久婷婷国产综合精品性色 | 成年免费在线观看 | 成人免费看电影 | 羞羞视频在线免费 | 免费观看日韩精品 | 天天爽网站 | 欧美日韩在线观看一区 | 超碰免费在线 | 亚洲日韩中文字幕一区 | 干一干操一操 | 成人日b视频 | 精品一区二区三区四区视频 | 日韩av在线中文字幕 | 国产一区不卡 | 欧美三级电影在线播放 | 久久伊人一区 | 毛片久久久 | 一区二区三区四区不卡 | 天天看天天摸天天操 | 国产精品视频网 | 在线观看国产 | 成人欧美一区二区三区黑人孕妇 | 天天射中文 | 日韩午夜| 国产片淫级awww | 成人午夜黄色 | 久久综合久久综合久久 | 国产欧美在线一区二区 | 蜜桃av一区二区三区 | www国产成人免费观看视频 | 日韩精品视频在线 |