OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2056|回复: 3

我想把这个函数把他实现整数负数的转换,并且没有上限怎么实现,

[复制链接]

19

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2018-10-8
在线时间
75 小时
发表于 2019-1-19 11:41:14 | 显示全部楼层 |阅读模式
1金钱
      没有标明的变量为全局变量     
      double cnt1,cnt2,sum1=0,sum2=0;
                        if(count>30000)
                {
                        cnt1=5897.15-count*0.09;
                        sum1=sum1+cnt1;
                }
                else
                {
                        cnt2=count*0.09;
                        sum2=sum2+cnt2;
                }
                if(sum2-sum1>=0)
                {
                        zong1=sum2-sum1;
                        sum2=zong1;
                        zong2=zong1;
                        return zong1;
                }
                else
                {
                        zong1=sum2-sum1;
                        sum1=zong1;
                        zong2=zong1;
                        return zong1*(-1);
                }

最佳答案

查看完整内容[请看2#楼]

double plus_minus(double count) { double cnt1,cnt2; if(count>30000) { cnt1=5898.15-count*0.09; count=TIM4->CNT=0; sum1=sum1+cnt1;//sum1为负 } else { cnt2=count*0.09; count=TIM4->CNT=0; sum2=sum2+cnt2; } //可以通过每次加到多少后再判断清零 if(sum2-sum1>=0) { zong1=sum2-sum1; sum2=zong1; sum1=0; zong2=zong1; return zong1 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

19

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2018-10-8
在线时间
75 小时
 楼主| 发表于 2019-1-19 11:41:15 | 显示全部楼层
逸雨 发表于 2019-1-19 11:45
函数名,count是通过读取寄存器里的参数

double plus_minus(double count)

double plus_minus(double count)
{
        double cnt1,cnt2;
                        if(count>30000)
                {
                        cnt1=5898.15-count*0.09;
                        count=TIM4->CNT=0;
                        sum1=sum1+cnt1;//sum1为负
                }
                else
                {
                        cnt2=count*0.09;
                        count=TIM4->CNT=0;
                        sum2=sum2+cnt2;
                }
                //可以通过每次加到多少后再判断清零
               
                if(sum2-sum1>=0)
                {
                        zong1=sum2-sum1;
                        sum2=zong1;
                        sum1=0;
                        zong2=zong1;
                        return zong1;
                }
                else
                {
                        zong1=sum2-sum1;
                        sum1=0;
                        sum2=zong1;
                        zong2=zong1;
                        return zong1*(-1);
                }

}
定时器只能0-65535我要输出负数,这是我自己写的程序,可以实现功能,欢迎指教。
回复

使用道具 举报

19

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2018-10-8
在线时间
75 小时
 楼主| 发表于 2019-1-19 11:45:09 | 显示全部楼层
函数名,count是通过读取寄存器里的参数

double plus_minus(double count)
回复

使用道具 举报

19

主题

63

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
354
金钱
354
注册时间
2018-10-8
在线时间
75 小时
 楼主| 发表于 2019-1-19 16:53:12 | 显示全部楼层
逸雨 发表于 2019-1-19 16:51
double plus_minus(double count)
{
        double cnt1,cnt2;

在输出是通过zong2判断大于零还是小于零
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-23 04:56

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表