我正试着用一台用Go编写代码的Arduino ATMega2560来转动马达。这里有一个使用TinyGo v0.14.1的示例:https://create.arduino.cc/projecthub/alankrantas/tinygo-on-arduino-uno-an-introduction-6130f6
该示例本质上如下所示:
func main() {
machine.InitPWM()
led := machine.PWM{machine.D9}
led.Configure()
value := 0
led.Set(uint16(value))
}当我尝试调用machine.InitPWM()时,我得到一个错误InitPWM not declared by package machine
TinyGo的当前版本(也是我正在运行的版本)是v0.19。似乎机器包已经被修改为使用不同的PWM,然而,我在任何地方都找不到如何正确使用它。
发布于 2021-07-22 20:22:12
在用于ATMega2560 - https://tinygo.org/docs/reference/microcontrollers/machine/arduino-mega2560/的machine包中确实没有InitPWM函数
发布于 2021-11-05 20:54:54
您必须设置machine.Timer1才能使用pin9。下面的代码可以做你想做的事情,除了不会发生任何事情,因为'value‘被设置为0。您必须使用0-256之间的值才能执行某些操作:
pwm := machine.Timer1
pin9 := machine.D9
err := pwm.Configure(machinePWMConfig{})
if err != nil{println(err.Error())}
ch, err := pwm.Channel(pin9)
if err != nil{println(err.Error())}
//note that values are between 0-256 for pwm:
value := uint32(0)
pwm.Set(ch, uint32(value))https://stackoverflow.com/questions/68480314
复制相似问题