Witam serdecznie.
Mam pewien problem ze zrozumieniem sterowania serwonapędów.
Próbuję zaprogramować ruch serwa ( Tower Pro SG-5010) przez sprzętowe PWM.
Żyła sygnałowa serwa podpięta do PB1/OC1A , zasilanie 5V, masa wspólna z mikrokontrolerem.
Częstotliwość taktowania to 8MHz. Oto mój kod:
Ustawiam tryb 14 timera1 i prescaler 256 co daje 8MHz/256 = 31250
Ustawiając ICR1 na 625 uzyskuję częstotliwość 50Hz czyli właściwy okres sterowania serwem 20ms.
Moje pytanie brzmi, jak wysterować zmienny stan wysoki przez 1-2ms w tym okresie? Jeśli są błędy w moim rozumowaniu bardzo proszę o poprawkę.
Mam pewien problem ze zrozumieniem sterowania serwonapędów.
Próbuję zaprogramować ruch serwa ( Tower Pro SG-5010) przez sprzętowe PWM.
Żyła sygnałowa serwa podpięta do PB1/OC1A , zasilanie 5V, masa wspólna z mikrokontrolerem.
Częstotliwość taktowania to 8MHz. Oto mój kod:
Kod: C / C++
Ustawiam tryb 14 timera1 i prescaler 256 co daje 8MHz/256 = 31250
Ustawiając ICR1 na 625 uzyskuję częstotliwość 50Hz czyli właściwy okres sterowania serwem 20ms.
Moje pytanie brzmi, jak wysterować zmienny stan wysoki przez 1-2ms w tym okresie? Jeśli są błędy w moim rozumowaniu bardzo proszę o poprawkę.
