標(biāo)題: 這個(gè)單片機(jī)程序?yàn)樯恫竭M(jìn)電機(jī)實(shí)際效果沒有轉(zhuǎn)360度?只轉(zhuǎn)了90度多 [打印本頁(yè)]

作者: wuliao0o0    時(shí)間: 2022-7-1 16:45
標(biāo)題: 這個(gè)單片機(jī)程序?yàn)樯恫竭M(jìn)電機(jī)實(shí)際效果沒有轉(zhuǎn)360度?只轉(zhuǎn)了90度多
理想效果是電機(jī)正向轉(zhuǎn)360度后反向轉(zhuǎn)360度,但實(shí)際效果只轉(zhuǎn)了90度多。


作者: 17337161031    時(shí)間: 2022-7-1 19:32
定時(shí)是不是不對(duì)
作者: Hephaestus    時(shí)間: 2022-7-1 20:17
MotorRun函數(shù)第二行溢出了。
作者: wuliao0o0    時(shí)間: 2022-7-2 17:53
Hephaestus 發(fā)表于 2022-7-1 20:17
MotorRun函數(shù)第二行溢出了。

改成int和float試了一下都不行
作者: wuliao0o0    時(shí)間: 2022-7-2 17:55
17337161031 發(fā)表于 2022-7-1 19:32
定時(shí)是不是不對(duì)

從網(wǎng)上找了個(gè)精確延時(shí)的程序放進(jìn)去了也不行
作者: wuliao0o0    時(shí)間: 2022-7-2 17:57
如果把MotorRun方法里的angle參數(shù)改成int型后,電機(jī)會(huì)一直朝著一個(gè)方向轉(zhuǎn)
作者: lkc8210    時(shí)間: 2022-7-2 21:33
wuliao0o0 發(fā)表于 2022-7-2 17:53
改成int和float試了一下都不行

改long啊
  1. void MotorRun (uint angle, uint drct, uint speed){
  2. long step, nangle;
  3. nangle=(long)512*angle/45;//將角度換算成拍數(shù),計(jì)算結(jié)果自動(dòng)耶
  4. ...
復(fù)制代碼




作者: 周翔宇    時(shí)間: 2022-7-3 00:00
512*angle=512*360=184320,這個(gè)地方先溢出,才會(huì)再除45
作者: wuliao0o0    時(shí)間: 2022-7-3 09:32
lkc8210 發(fā)表于 2022-7-2 21:33
改long啊

可以了,謝謝大佬,太謝謝了
作者: wuliao0o0    時(shí)間: 2022-7-3 09:32
周翔宇 發(fā)表于 2022-7-3 00:00
512*angle=512*360=184320,這個(gè)地方先溢出,才會(huì)再除45

好的,太謝謝了




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1