如何在tinygo中映射两个值范围



我正在使用Golang用tinygo编程arduino uno。我正在尝试映射两个值范围
一个是范围在0-1000之间的编码器,另一个是tinygo的ADC范围在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

最新更新