[STM32F4] 如何通过一次除法,同时获得余数和商?

[复制链接]
 楼主| chenho 发表于 2021-11-14 22:24 | 显示全部楼层 |阅读模式
如何通过一次除法,同时获得余数和商?
stm32系列芯片、IAR环境


#include <stdlib.h>
div_t  x;
x=div(A,B);
C = x.quot;
D = x.rem;
这个函数倒是可以做到,但是这样我就没办法四舍五入了。
juventus9554 发表于 2021-11-14 22:26 | 显示全部楼层
一次除法?除不完怎么办?
期待实现方法
stly 发表于 2021-11-14 22:31 | 显示全部楼层
网上搜的,不知道对不对
#include <stdio.h>


// dividend, divisor, quotient and remainder should be replaced with variables instead of constant number
#define GET_DIV_AND_MOD(dividend, divisor, quotient, remainder)        \
__asm{        \
__asm push eax        \
__asm push edx        \
__asm mov eax, dword ptr[dividend]        \
__asm cdq        \
__asm idiv dword ptr[divisor]        \
__asm mov dword ptr[quotient], eax        \
__asm mov dword ptr[remainder], edx        \
__asm pop edx        \
__asm pop eax        \
}


void main(void)
{
int a = 9, b = 4;

int quo=0, rem=0;

//GET_DIV_AND_MOD(a, b, quo, rem);

quo = a / b;

GET_DIV_AND_MOD(a, b, quo, rem);

         printf("The quo is: %d, and the rem is: %d\n", quo, rem);
}
llljh 发表于 2021-11-14 22:33 | 显示全部楼层
自己写个子程序好了;
stly 发表于 2021-11-14 22:36 | 显示全部楼层
不是有成品函数吗
zhenykun 发表于 2021-11-14 22:38 | 显示全部楼层
别用除法  太慢了
zwll 发表于 2021-11-14 22:40 | 显示全部楼层
感觉不太好做。都是分两步做的。
dingy 发表于 2021-11-14 22:42 | 显示全部楼层

或者用硬件乘法器。做出来之后,进行数据分离!
dengdc 发表于 2021-11-14 22:44 | 显示全部楼层
你这是要做什么?是要做鉴相吗?
jlyuan 发表于 2021-11-14 22:46 | 显示全部楼层
用左右移位就行
dingy 发表于 2021-11-14 22:48 | 显示全部楼层
太耗费资源了
 楼主| chenho 发表于 2021-11-14 22:50 | 显示全部楼层

嗯,预料中的结果,多谢大家啦
wyjie 发表于 2021-11-14 23:14 | 显示全部楼层
就是画点画线就行了。
chuxh 发表于 2021-11-14 23:19 | 显示全部楼层
推荐使用串口屏吧
pengf 发表于 2021-11-14 23:21 | 显示全部楼层
楼主前面不是做好了数据了吗?
wyjie 发表于 2021-11-14 23:23 | 显示全部楼层
现在的串口屏做图像显示简单很多。
zhenykun 发表于 2021-11-14 23:26 | 显示全部楼层
分时段采样温度值,记录下来,然后显示
stly 发表于 2021-11-14 23:28 | 显示全部楼层
图像显示用串口屏比较好做
supernan 发表于 2021-11-14 23:29 | 显示全部楼层
问题到底在什么地方呢?把一天的数据显示出来就完了
wuhany 发表于 2021-11-14 23:32 | 显示全部楼层
这个不是做完成了吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

748

主题

9853

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部