打印
[技术问答]

M031硬件除法器 ,HDIV_Div(45000,13) 偶尔会出错,大家遇到过吗

[复制链接]
784|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 panghongfei 于 2022-11-12 17:14 编辑

uint CountAvg_Advalue(uint *ADV,uchar Times)
{
    uchar i;
   uint Avg=0;
    uint CountAll=0;
    for(i=0; i<Times; i++) CountAll=CountAll+ADV;                 //统计总数
    //Avg = CountAll/(Times);
    Avg=HDIV_Div(CountAll, Times);                    //使用硬件除法器,求平均值
    return Avg;
}

使用特权

评论回复
沙发
小明的同学| | 2022-11-14 14:40 | 只看该作者
没遇到过,第一次听说这个事情。回头找个板子试试也来发帖。

使用特权

评论回复
板凳
et009| | 2022-11-14 19:29 | 只看该作者
uint CountAll=0;  可能累加後大於 0x8000 後 传入HDIV_Div(int32_t x, int16_t y)
变成负数造成。可改成 uint32_t CountAll=0; 试试看。

使用特权

评论回复
地板
jasontu| | 2022-11-15 11:58 | 只看该作者
同意et009的说明,使用者要检查输入的范围才是

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

44

帖子

2

粉丝