如何在Tinygo中映射两个取值范围 [英] How to map two value ranges in tinygo

查看:17
本文介绍了如何在Tinygo中映射两个取值范围的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Golang为Arduino uno和tinygo编程。我正在尝试映射两个值范围。
一种是编码器,范围在0-1000之间,另一种是Tinygo的模数转换器,范围在0-65535之间。我正在读取ADC范围,需要将其转换为0-1000(编码器)范围。

我尝试了几种方法,但我遇到的基本问题是数据类型。例如,下面的公式等于0:

var encoderValue uint16 = 35000
float := float64(1000/65535) * float(encoderValue)

推荐答案

1000/65535为整数除法,结果为0。如果您将结果转换为float64,则它将是0.0,这并不重要。

使用浮点常量:

var encoderValue uint16 = 35000
x := float64(1000.0/65535) * float64(encoderValue)
fmt.Println(x)

这将输出(在Go Playground上试用):

534.0657663843748

这篇关于如何在Tinygo中映射两个取值范围的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆