如何在Tinygo中映射两个取值范围 [英] How to map two value ranges in tinygo
本文介绍了如何在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屋!
查看全文