Dziś postanowiłem napisać program do "kręcenia" silnikiem BLDC
Na początku program wyglądał tak jak w pętli _main:
i aby silnik ruszył trzeba było mu pomóc
Następnie chciałem użyć timera do obliczania czasu kroku
i stało się coś dziwnego kiedy w przerwaniu Timer0 umieściłem DEC r15
silnikiem zaczęło lekko "szarpać", ale za to zaczął sam startować (nie trzeba mu pomagać)
I tu moje pytanie jaki wpływ na program ma ta operacja w przerwaniu timera?
Dodam jeszcze, że można tam wpisać np. inc r14 i efekt jest ten sam, ale NOP nie wpływa na pracę silnika
Teraz mój program wygląda tak, że na początku rozpędzam silnik tą dziwną metodą, a następnie kiedy silnik nabierze obrotów wyłączam przerwanie
timera i przechodzę do pętli _main, a chciałbym ten start wykonać profesjonalnie, a nie jakąś przypadkową metodą
Na początku program wyglądał tak jak w pętli _main:
i aby silnik ruszył trzeba było mu pomóc
Następnie chciałem użyć timera do obliczania czasu kroku
i stało się coś dziwnego kiedy w przerwaniu Timer0 umieściłem DEC r15
silnikiem zaczęło lekko "szarpać", ale za to zaczął sam startować (nie trzeba mu pomagać)
I tu moje pytanie jaki wpływ na program ma ta operacja w przerwaniu timera?
Dodam jeszcze, że można tam wpisać np. inc r14 i efekt jest ten sam, ale NOP nie wpływa na pracę silnika
Teraz mój program wygląda tak, że na początku rozpędzam silnik tą dziwną metodą, a następnie kiedy silnik nabierze obrotów wyłączam przerwanie
timera i przechodzę do pętli _main, a chciałbym ten start wykonać profesjonalnie, a nie jakąś przypadkową metodą
Kod: AVR assembler