Witam.
Kombinuję już od jakiegoś czasu nad włącznikiem RC ale nie typu on/off tylko w zależności od zapotrzebowań, tyle ma być stanów.
Na chwilę obecną docelowo mają to być 3 stany off/1/2.
Wygrzebałem w googlu kawałek kodu, który jest odpowiedzialny właśnie za pomiar długości trwania stanu wysokiego na wejściu ICP1 (input capture). Jednak za żadne pieniądze nie mogę tego uruchomić (w ramach testu chcę w zależności od długości impulsu zapalać inną diodę).
Przykładowo włącznik ma być wyłączony dla czasu impulsu mniejszego od 1ms=1000us. Stan 1 ma być między 1ms a 1.5ms. Stan 2 ma być powyżej 1.5ms.
Teraz przejdę do konkretnych pytań.
1. Czy dobrze w ogóle konfiguruję timer1 do pracy w trybie ICP? Przypominam - ATmega32.
2. Jaki powinienem ustawić prescaler dla pomiaru czasów z dokładnością do 1us? Sugerując się moim wcześniejszym projektem gdzie sterowałem serwami był tam prescaler na 64 ustawiony.
3. W którym miejscu powinienem umieścić kawałek kodu odpowiedzialny za warunkowe zapalanie poszczególnych diód? W obsłudze przerwania czy w mainie w pętli nieskończonej ?
Będę wdzięczny za wskazówki co do uruchomienia tego ustrojstwa.
Aha... sygnał podawany na ICP jest w okresie 20ms (zbocze narastające co 20ms)
Kombinuję już od jakiegoś czasu nad włącznikiem RC ale nie typu on/off tylko w zależności od zapotrzebowań, tyle ma być stanów.
Na chwilę obecną docelowo mają to być 3 stany off/1/2.
Wygrzebałem w googlu kawałek kodu, który jest odpowiedzialny właśnie za pomiar długości trwania stanu wysokiego na wejściu ICP1 (input capture). Jednak za żadne pieniądze nie mogę tego uruchomić (w ramach testu chcę w zależności od długości impulsu zapalać inną diodę).
Przykładowo włącznik ma być wyłączony dla czasu impulsu mniejszego od 1ms=1000us. Stan 1 ma być między 1ms a 1.5ms. Stan 2 ma być powyżej 1.5ms.
Kod: C / C++
Teraz przejdę do konkretnych pytań.
1. Czy dobrze w ogóle konfiguruję timer1 do pracy w trybie ICP? Przypominam - ATmega32.
2. Jaki powinienem ustawić prescaler dla pomiaru czasów z dokładnością do 1us? Sugerując się moim wcześniejszym projektem gdzie sterowałem serwami był tam prescaler na 64 ustawiony.
3. W którym miejscu powinienem umieścić kawałek kodu odpowiedzialny za warunkowe zapalanie poszczególnych diód? W obsłudze przerwania czy w mainie w pętli nieskończonej ?
Będę wdzięczny za wskazówki co do uruchomienia tego ustrojstwa.
Aha... sygnał podawany na ICP jest w okresie 20ms (zbocze narastające co 20ms)