Witam,
zagadnienie, w którego sprawie chciałbym się poradzić wygląda następująco. Muszę sterować serwomechanizmem modelarskim przy jak najmniejszym udziale głównego wątku programu.
Pytanie z tym związane, czy da się to zrobić używając 16-bitowego timera1, rejestrowi OCR1A przypisać wartość odpowiadającą 20ms oraz ustawić zdarzenie aby wyjście OC1A był ustawiane przy porównaniu automatycznie. Natomiast rejestrowi OCR1B przypisywać wartości odpowiadające 1-2ms oraz włączyć przerwanie generowane przy porównaniu, w którym wykonywała by się 1 instrukcja, zerowania wyjścia OC1A. Tym samym wątek główny programu będzie przerywany jedynie na wykonanie przerwania generowanego przez porównanie wartości OCR1B z aktualnym stanem licznika.
Czy moje założenia są poprawne?
zagadnienie, w którego sprawie chciałbym się poradzić wygląda następująco. Muszę sterować serwomechanizmem modelarskim przy jak najmniejszym udziale głównego wątku programu.
Pytanie z tym związane, czy da się to zrobić używając 16-bitowego timera1, rejestrowi OCR1A przypisać wartość odpowiadającą 20ms oraz ustawić zdarzenie aby wyjście OC1A był ustawiane przy porównaniu automatycznie. Natomiast rejestrowi OCR1B przypisywać wartości odpowiadające 1-2ms oraz włączyć przerwanie generowane przy porównaniu, w którym wykonywała by się 1 instrukcja, zerowania wyjścia OC1A. Tym samym wątek główny programu będzie przerywany jedynie na wykonanie przerwania generowanego przez porównanie wartości OCR1B z aktualnym stanem licznika.
Czy moje założenia są poprawne?