我用Golang来用丁尼哥编程一个arduino uno。我正在试图映射两个值范围。
一个是一个范围在0-1000之间的编码器,另一个是tinygo的模数转换器范围在0-65535之间.我正在读取ADC范围,需要将其转换到0-1000 (编码器)的范围。
我尝试过几种方法,但我遇到的基本问题是数据类型。例如,下面的公式等于0:
var encoderValue uint16 = 35000
float := float64(1000/65535) * float(encoderValue)发布于 2021-11-05 21:17:49
1000/65535是一个整数除法,它将导致0。如果将结果转换为float64并不重要,那么它将是0.0。
使用浮点常量:
var encoderValue uint16 = 35000
x := float64(1000.0/65535) * float64(encoderValue)
fmt.Println(x)这将输出(在围棋游乐场上尝试它):
534.0657663843748https://stackoverflow.com/questions/69859246
复制相似问题