Timer1 pracujący jako licznik - Wiatromierz - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Timer1 pracujący jako licznik - Wiatromierz (/watek-timer1-pracuj%C4%85cy-jako-licznik-wiatromierz) |
Timer1 pracujący jako licznik - Wiatromierz - keczub - 05-01-2016 Witam Głównym moim zamierzeniem było zliczanie impulsów z halotronu wiem, że mógłbym to zrobić na zwykłych przerwaniach sprzętowych ale nie chciałem zamulać głównego programu dużą ilością przerwań, dlatego zdecydowałem się na użycie timera jako licznika korzystającego z zewnętrznego wejścia zegarowego T0. W moim wypadku generatorem jest czujnik Halla. Wszystko było dobrze gdy pisałem to dla timera 0 wszystko działa pięknie niestety nie mam wtedy dostępu do timerów z biblioteki Timer.H z których korzystam już w skumulowanym programie. Dlatego chciałem użyć Timer1 i tu jest problem, bo jak dla Timera 0 działa wszystko to dla 2 prawie nic. Kod dla timera0 Kod: //volatile int encoder1 = 500; Kod dla Timera1 Kod: volatile long long int przepel=0; Mam arduino Leonardo. Będę z góry wdzięczny za odpowiedź. RE: Timer1 pracujący jako licznik - Wiatromierz - v-cu - 05-01-2016 Jak ma to działać, jakieś szczegóły? Zastanawiam się po co w ogóle wykorzystujesz Timery, jeśli to ma zliczać to ja bym to po prostu zrobił tak: Kod: if(halotron == HIGH){ RE: Timer1 pracujący jako licznik - Wiatromierz - JasQ - 05-01-2016 Jest jeszcze kwestia częstotliwości sam się z tym kiedyś borykałem ponieważ kod był dosyć złożony odczyty miałem ograniczone do około 30 ms , przy większej częstotliwości gubił i odczyty . RE: Timer1 pracujący jako licznik - Wiatromierz - keczub - 06-01-2016 Po prostu ma to za zadanie zlicza sygnały z halotronu i dajmy na to co kilka sekund sprawdzam sobie ile przerwaniem ile impulsów zliczyło co da mi pojęcie ile obrotów wykonał wiatrak, z czego już mogę wyznaczyć metodą doświadczalną wzór na ilość impulsów na metr/sekundę. Po to wykorzystuje timery by, nie obciążać głównego programu przerwaniami zewnętrznymi. Wykorzystuje Timery aby po: 1. Nauczyć się czegoś nowego co może się przydać na przykład przy endkoderach 2. Odciążyć program v-cu Twój pomysł jest totalnie zły jeśli coś takiego umieścisz w głównej pętli to będziesz gubił tyle pomiarów co nie miara. Wyobraź sobie, że główna pętla posiada w sobie inne instrukcje i jeszcze jest kilka przerwań. Twój warunek musiałby idealnie trafiać w moment kiedy Halotron generuje stan wysoki ale przy okazji zgubiłby tysiące pomiarów w czasie pomiędzy kolejnymi sprawdzaniami. JasQ póki co na razie nie działa ogólnie jeszcze nie mam problemu z zbyt szybko generowanymi impulasami. RE: Timer1 pracujący jako licznik - Wiatromierz - v-cu - 06-01-2016 No nie dałeś całego programu to nie mogłem się domyślić |