Poradnik kol. (at)szczywronek , strona 139.
http://obrazki.elektroda.pl/7470188800_1... Zrobiłem sobie kiedyś taki bloczek : 2 wejścia 2 wyjścia ( przerzutnik asynchroniczny) Dołożyłem go do UDF ( narzędzia >Opcje > UDF ). W programie jest to bloczek 2 wej / 2 wyj. Rozpakowany masz w załączonym obrazku. Wewnątrz jest więcej bloczków które tworzą w funkcji UDF jeden łatwy do wielokrotnego...
Jak chodziłem do technikum elektrycznego to w IV klasie tworzyliśmy jakieś programy: W załączniku jest kilka napisanych przeze mnie. Są tam chyba dwa wykorzystujące liczniki.
z jednej strony trudno jest wytworzyć z użyciem delayMicroseconds() Tak się tego nie robi, mikrokontroler ma sprzętowe liczniki/timery do generowania przebiegów.
Z każdym przyciskiem skojarz jedną zmienną, która będzie zawierała stan licznika timera, w chwili wykrycia jego naciśnięcia. W kolejnych przerwaniach overflow sprawdzasz: 1. czy przycisk jest ciągle naciśnięty, 2. jeśli 1. jest prawdą to czy różnica pomiędzy licznikiem timera a wartością zapamiętaną w skojarzonej z przyciskiem zmiennej jest większa...
https://obrazki.elektroda.pl/4020542600_... 1. Tryb write 2. Wybierasz i przeciągasz blok z element selection 3. Klikasz na pole przy PT i zaczynasz pisać 4. Kończysz wpisywać wartość czasu 5. Klikasz OK
To nie pytania kontrolne tylko naprowadzające :) 80% wypełnienia to 80 % stanu "high" w danym okresie, czyli jeśli okres trwa sekundę to przez 800 ms będzie przepływał prąd przez dany pin. po czym zatrzyma się na 200ms i cała operacja się powtórzy. Zgadza się ? I właśnie do odmierzania tych czasów służą liczniki (timery). Wybrany timer z funkcją PWM,...
Timer + licznik - najlepiej licznik Johnsona (CD4017, CD4022) - określony stan licznika dawałby zaakcentowane stuknięcie i jednocześnie resetował licznik. Timer raczej CMOS, jeśli to ma działać zasilane z baterii, inaczej twój kumpel zrujnuje się na baterie...
Może by tak te impulsy na próbę podać na zwykły licznik/timer i zobaczyc ile zliczy na sek. i czy zlicza stabilnie? Przynajmniej bedzie wiadomo czy to problem bardziej sprzetowy, czy programowy.
Po co omron wprowadza BCD w swoje timery i liczniki w plc? Ciężko powiedzieć, że wprowadza. Po prostu masz różne możliwości zadawania czasu ;) W zależności jakie masz CPU, możesz albo używać zadawania BCD lub dziesiętnego jednocześnie lub na stałe wybrać, jak mają być wpisywane (prawym na CPU i w Properties fajka Execute timer/counter as binary). #20...
ad 1. Użyj timerów - taktując je zegarem o odpowiedniej częstotliwości licznik timera będzie zliczał czas. ad. 2. Użyj timera :) Tylko w trybie input capture - w tym trybie licznik zlicza impulsy zegara taktującego i jest stopowany zboczem sygnału doprowadzonego do wejścia ICP timera.
Zalozenia ktore podales sa niezbyt precyzyjne. Podejrzewam, ze do sterowania serwomechanizmami sygnaly PWM wcale nie musza na siebie zachodzic a z faktu, ze maksymalne wypelnienie PWM wynosi zaledwie 10% wynika iz moglbys wystawic nawet 10 PWM-ow. Podsumowujac idea jest taka: w pierwszych 2ms (w okresie 20ms) obslugujesz 1-szy PWM (na pozostale PWM-y...
11.0592 / 12= 0.9216 tyle trwa okres zegara w mikrosekundach . Poniewaz F=50 hz okres 20ms / 2= 10ms =10000 mikrosekund 10000 / 0.9216 = 10851- tyle taktow musi policzyc licznik timera, przerwanie wystapi gdy licznik doliczy do 65535 +1, poniewaz liczy od 0 do 65535 ,trzeba mu wpisac wartosc poczatkowa. zeby odliczył owe 10851 taktow , czyli 65536-10851...
A jakiś przykład kodu jest kolega w stanie pokazać? Ustawiasz timer, tak aby się przepełniał po czasie np. 1,5 znaku. W przerwaniu odbioru, zerujesz licznik timera. W przerwaniu przepełnienia timera ustawiasz flagę - koniec transmisji. Oczywiście w zależności od konkretnych peryferiów dostępnych w MCU, można ten proces zoptymalizować. Do tego dodałbym...
Należy: - zadeklarować zmienną globalną np. LICZNIK i nadać jej wartość zera, - włączyć przerwania od przepełnienia Timer0, - w funkcji przerwania należy zwiększać wartość zmiennej LICZNIK o jeden Aby poznać liczbę impulsów wystarczy pomnożyć LICZNIK*256 i dodać do niego aktualną wartość rejestru licznika timera, czyli jak sądzę counter0 (nie znam BASCOM).
Będzie różnica w pamięci: W markerach, w licznikach, timerach etc. w 102 będzie mniej niż w 103. Można użyć więcej FB, DB etc. w 103 w stosunku do 102. 103 będzie pewnie szybszy. Ma też zegar czasu rzeczywistego.
Oczywiście, przeczytaj o module ICP timera. W momencie wystąpienia zdarzenia, licznik timera jest przepisywany do rejestrów ICP. Rozdzielczość jest zależna od częstotliwości taktowania timera. Twoje rozwiązanie nie może prawidłowo działać, bo czas liczysz w pętli, a ta z kolei ma różny czas wykonywania (zakładam, że korzystasz z przerwań).
bedzie tak wygladalo jesli np zaraz po rozpoczeciu cyklu, do licznika timera wpiszesz wypelnienie (wartosc 100). bez reszty kodu mozna strzelac i obstawiam ze to cos w tym stylu PS ide sobie bo nsvinc i tak do wszystkiego co powiem na glos dorzuca swoje doswiadczenie i pisze pierwszy..
Witam Załóżmy że chcemy mieć 50Hz. Teraz trzy wyświetlacze to wychodzi przerwanie 150Hz czyli okres co 0,00666 itd sec. Teraz policz ile cykli przypada przy Twoim zegarku na taki czas. Teraz wystarczy podstawić dane do liczników Timera (pamiętaj że liczą one w górę). Wydaje mi się że ładniej jest przeładować liczniki Timerów przy wejściu do przerwania...
Uruchamianie timera przed zaprogramowaniem okresu nie jest najlepszym zwyczajem. Wartość wpisywana do OCR to okres - 1. Napisz po prostu: OCR1A = FCLK / 256 - 1; (O ile częstotliwość zegara jest zdefiniowana pod nazwą FCLK - nie pamiętam, bo skończyłem z AVR jakieś 4 lata temu.)
A czy jakiś dany czas przejścia jest wymagany podczas zmiany konfiguracji? Wątpię, trzeba erratę poczytać czy nie ma błędów związanych z licznikami.
Ten przebieg trójkątny to będzie po prostu zawartość licznika Timera. Więc nie trzeba go jakoś specjalnie generować. On się sam wygeneruje po odpowiednim skonfigurowaniu Timera. Idąc dalej wygeneruje sinusa, którego będę porównywać z aktualną wartością tego timera i gdy owe wartości będą równe wtedy powinienem je wpisać jak wypełnienie PWM-a, dobrze...
8253 programowalnym liczniku timerze A nie Z80CTC?
Witam, Ustaw sobie jakiś licznik, który będzie się inkrementował jeśli hasło będzie niepoprawne. Nie wiem jak sprawdzasz poprawność hasła, ale jeśli jest to komendą if, to daj warunek else, który spowoduje, że jeśli program nie wejdzie Ci w komendę warunkową, to wykona inkrementowanie licznika. Następnie sprawdzasz stan licznika, jeśli będzie miał wartość...
Jak byś podał więcej szczegółów to może byłoby łatwiej. Zainteresuj się produktami ARRAY CO. W Polsce jest sklep Telmatik, kupowałem kilka razy i do prostych zastosować są jak najbardziej ok. Soft jest darmowy, trzeba tylko kabelek nabyć. Na serii SR robiłem kiedyś maszynę pseudo CNC do cięcia kamienia w plastry. Mnóstwo wejść, wyjść, wewnątrz liczniki,...
Z opisu funkcji wynika, że pętla używa 8-bitowego licznika. Gdzie w tej funkcji jest odniesienie do licznika.? W tej linii: dec %0 Po prostu jeden z rejestrów jest używany do odliczania opóźnienia i dlatego został "przezwany" licznikiem. Nie ma to nic wspólnego z fizycznymi licznikami/timerami. O wstawkach assemblerowych możesz przeczytać w manualu...
Nijak z żadnego kodu nie mogę się doczytać na chłopski rozum kiedy on mierzy czas od Rising do Rising. Nie używaj więc chłopskiego rozumu - użyj własny! Wyjaśnienie powinno być zbędne bo jest bardzo trywialne; - obracając wiatrakiem, w pewnym momencie wbudowany tam hall switch daje impuls na INT0, co wtedy robisz w programie? - odsyłasz go do etykiety...
robilem cos takiego i tez poszedlem drogą licznika i timera. Timer odmierzał kwanty czasu, a licznik przerwania INT0. Dodatkowo wykorzystałem sobie jakieś przełączniki DIP do zmiany szerokości okienka czasowego w których liczone są impulsy.
Witam, Pisałem coś podobnego, najlepiej wykorzystać do tego celu jeden Timer oraz licznik. Timer będzie inkrementował wartość licznika. Aktualna wartość z licznika będzie porównywana z zadaną i na podstawie tego będą włączane/wyłączane wejść. Albo prościej. Jeśli na wejściu I0.0 będzie wartość jeden to ustaw zmienną pomocnicza i uruchom timer1. Jak...
Napotkałem jeszcze parę problemów po drodze: >>gdzie mogę znaleźć schemat jakiegoś kompatybilnego modemu z mikrokontrolerem 8051, wiem ze ma się kończyć na DB9 ale żadnego schematu nie widze... Tu chodzi o programator. Modem to coś zupełnie innego. 8051 można programować poprzez złącze ISP, tak jest w wersji S (ang. serial) np. AT89S51. Programator...
No, cóż. Mogłeś użyć symulatora, debuggera który by jasno i wyraźnie odpowiedział na pytania o pełne działanie instrukcji START i STOP. START dokonuje ponownego wznowienie działania licznika przez odtworzenie zapamiętanej wcześniej jego konfiguracji. STOP zmienia prescaler na 0 by licznik całkowicie zatrzymać. To jedyne działanie tych poleceń. Ale uważaj,...
Tak, będziesz mógł. Jeśli chcesz liczyć w czasie (a nie chcesz) to mierzony przebieg doprowadzasz do wejścia zegarowego timera, w efekcie każdy impuls powoduje zwiększenie wartości licznika o jeden. Skoro chcesz mierzyć szerokość impulsu to wykorzystujesz wejście ICP timera - timer taktujesz z maksymalną częstotliwością, z kolei impulsy z obrotomierza...
Czekaj, czekaj. Jeden czujnik odpali przerwanie INT0 a w tym przerwaniu sie uruchomi timer. Drugi czujnik po INT1 ma go wyłączyć. Raczej o tym myślałem. Lepiej tak: czy ktoś by mi dokładnie wytłumaczył jak wywoływać timery, zbierać z nich czas, do czego służą poszczególne rejestry. Noty katalogowej tego procka po polsku nie znalazłem, a dobrego poradnika...
Musisz też załadować nową wartość do licznika timera. Jak już pisałem, bez fragmentu kodu odpowiadającego za pobranie czasu przerwania dziaął poprawnie, więc nie w tym problem.
Możesz też nie używać Timera tylko licznika, przypisać bajt do timera wewnętrznego. Wtedy masz na poszczególnych bitach tego bajtu, impulsy o różnej częstotliwości. Zliczasz te impulsy i porównujesz je z wartością zadaną. A wartość zadaną zmieniasz za pomocą swoich przycisków.
Ja też dorzucę swoje 5 gr :) Poniżej delay oparte o timer, chcąc wykorzystać inny timer należy LPC_TIM0 zamienić na inny np. LPC_TIM1. [syntax=c] #include "LPC17xx.h" #include "lpc17xx_gpio.h" #include "lpc17xx_timer.h" void delay_us(uint32_t czas) { TIM_MATCHCFG_Type MatchConfigStruct; LPC_TIM0->IR = 1; // zresetowanie flagi przerwania od rejestru...
Jeśli wyeliminujesz drgania przycisku, to najprościej to zrealizować podając wyjście przycisku na wejście zegarowe jednego timera (bedzie on zliczał ilość wciśnięć), a drugi timer wykorzystać do odmierzania czasów 1s - dokładnie co 1 s należy kasować licznik pierwszego timera. Ot i wszystko.
Do timera dołącz "wyświetlacz" (gruba linia) a w nim zaznacz "autoryzation" - wtedy będzie widoczny na wyświetlaczu a po naciśnięciu OK będą działały + i - do zmiany wartości. Lepszym rozwiązaniem jest nastawianie wartości za pomocą licznika (wyjście "curent" na wyświetlacz) i komparowanie tej nastawy z analogicznym wyjściem timera. Licznik można zwiększać...
Przerwanie od INT0 powinno aktywować przerwania od timera, które co 50ms będą zmieniać stan portu c: INT0: - blokuj przerwania INT0 - licznik sekwencji na portc = 0 - aktywuj przerwanie timera INT TIMERA: - switch (licznik sekwencji) ..... w ostatnik case czy default: 1) blokuj przerwania timera 2) kasuj flagę INT0 3) włącz przerwania int0
A słyszał kolega kiedyś o czymś takim jak nota aplikacyjna PDF do procka? bez czytania tego - zawsze będzie kolega spędzał wiele dni i nocy nad rozwikłaniem tak prostej "zagadki" a wystarczy zajrzeć do noty procka ATtiny2313 (przecież jest w necie za free) - zajrzeć do interesującego cię rozdziału n/t Timera0 a dokładniej: 8-bit Timer/Counter Register...
Zauwaz, ze w trybie JTAG komputer nie ma jak dostac informacji o ilosci wykonanych instrukcji, procesor wykonuje je niezaleznie od komputera, inaczej niz w trybie emulacji, kiedy to komputer emuluje AVRa, wiec wie ile wykonal instrukcji. Program Counter to rejestr PC wskazujacy na kolejna instrukcje do wykonania, wiec ci nie pomoze. Pomysl z timerami...
Obsługa przerwania ma być najkrótsza. Najlepsza analogia do życia, to gdy dzwoni telefon, to tylko go odbierzesz, porozmawiasz i koniec, nie będziesz nieruchomo stał, aż zadzwoni następny raz. Podobnie w procesorze są przerwania uzależnione od różnych zdarzeń, zmiany stanu zewnętrznego pinu, opróżnienia bufora transmisji wyjściowej, otrzymania bajtu...
No niby tak ale nie do końca. Bo uczysz się interfejsu programu np. Festo uczysz się jak podpiąć kabel do Festo itd. itp. Ale najważniejsze jest to że wykonasz całą serię prostych zadań które wprowadzą cię w język programowania, który jest standardem, i naprawdę jedynie niektóre bloczki typu liczniki, timery troszeczkę się różnią od siebie, czy to w...
(at)Gunis-92: Możesz wykorzystać do odmierzania czasu np. SysTick [syntax=c] volatile uint32_t licznik_tykniec;// zmienna globalna /* obsluga przerwania od licznika/timera SysTick */ void SysTick_Handler(void) { licznik_tykniec++;// inkrementacja licznika } void delay(uint32_t czas) { uint32_t aktaualny_licznik_tykniec; aktaualny_licznik_tykniec = licznik_tykniec;...
Tryb 2 timera ma automatyczne przeładowywanie licznika, nic się nie późni.
Witam Czym się różni praca asynchroniczna od synchronicznej licznika TIMER w mikroprocesorach? Dodano po 35 Polega na tym, że w trybie synchronicznym licznik jest taktowany z tego samego generatora co mikroprocesor, a w trybie asynchronicznym może być taktowany z innego źródła - np. kwarcu zegarkowego, a procesor z oscylatora wewnętrznego RC. Na czym...
A mógłbyś mi jeszcze powiedzieć czemu w Twoim programie jest w 6 linijce orl TL0,#0F0h a nie MOV TL0,#0F0? Orl to chyba suma logiczna i nie rozumiem dlaczego to tak jest zapisane. Wychylę się i podpowiem. Przerwanie podejmowane jest przy przejściu licznika timera TH0,TL0 do stanu 0. Jednak timer liczy dalej 1,2.., ile jest w chwili przeładowania w...
Wystarczy wpisać do rejestru licznika zero oraz wyzerować preskaler. Na przykład Timer0: 1. TCNT0 ustawiasz na zero 2. ustawiasz bit PSR10 w rejestrze SFIOR. Ale uwaga! W tym przypadku PSR10 zeruje także preskaler Timer1. Szczegóły w datasheet. Jak już poprawisz program to napisz proszę w komentarzu do artykułu. :)
AVE... Jakiego PICa konkretnie chcesz użyć? Zasada pomiaru jest dość prosta: najpierw ustawia się któryś z timerów, by odmierzał 40 sekund i po odmierzeniu wywołał przerwanie. Potem tworzy się pętlę, która w nieskończoność sprawdza stan wybranego przez Ciebie pinu. Gdy jest tam logiczna jedynka, to dodajesz 1 do zmiennej. Gdy timer skończy zliczać czas,...
Ktoś pisze bzdury. Ta metoda da kilka procent fcpu. Lepiej zliczyć impulsy w określonym czasie za pomocą timera w trybie licznika. Drugim timerem mierzysz ten czas. Dla niskich częstotliwości lepiej mierzyć okres impulsu za pomocą ICP.
NE 555 nie jest potrzebny. C005 jest timerem. Output to wyjście cyfrowego układu licznika timera C005. Jak output podłączymy na bramkę mosfeta N to po odliczonym czasie załączy silnik. Napięcie +5V na output wystarczy do wysterowania mosfeta.
Timer jest niczym innym jak licznikiem, który zlicza impulsy zegara wejściowego, niezależnie od tego, czy procesor aktualnie wykonuje program główny, czy przerwanie. Odpowiadając na twoje pytanie: program skacze do obsługi przerwania, a timer liczy dalej.
A nie możesz wybierać wyświetlacza rejestrem przesuwnym? Chyba będzie prościej. Przynajmniej ja tak robię. I łatwo zmniejszyć liczbę wyświetlaczy. Sterowanie 16 wyświetlaczami... hm... policzmy. Jeśli założysz odświeżanie 100Hz, to kolejne cyfry musisz obsługiwać z częstotliwością 100Hz*16=1,6kHz i taka powinna być częstotliwość przerwań od licznika-timera....
Raczej na Timerach tego nie zrobisz... można z generatora (1 sek) - bramka AND (gdzie drugim sygnałem jest zezwolenie liczenia) - zliczać do licznika.
Witam! Odpowiedz brzmi TAK. CPU 103 jest „wyższą” wersja CPU 102 i zawiera jej wszystkie możliwości + nieco szerszy zakres dostępnych zasobów (timery, liczniki) itp.
https://termoplus.pl/liczniki-timery-zad...
Rozwiązywałem podobny problem (jestem początkujący) wykorzystałem dwa liczniki 8051 1. ustawiłem timer 1 na zliczanie impulsów zewnętrznych 2. ustawiłem timer 0 aby zliczał czas co 1 sek 3. wykorzystałem bit przepełnienia TF0 w celu sterowania w TCON bitem TR1 włącz wyłącz licznik i w ten sposób timer 1 zlicza mi impulsy zewnętrzne w czasie 1 sek a...
Dlatego, że w chwili zajścia zdarzenia do ICR przepisywana jest wartość licznika timera. ICR to nie jest rejestr, który jest przez timer inkrementowany, stąd też nie ma wielkiego sensu do niego coś zapisywać. A że licznik timera się inkrementuje, więc kolejne wartości ICR to po prostu wartości licznika timera w momencie zajścia zdarzenia. Aby to zmienić...
Timer ma jeden licznik. żeby zliczać impulsy, musisz skonfigurować go na zliczanie z któregoś wejścia, a nie domyślne zliczanie impulsów zegara. Rejestry CCR nie są Ci potrzebne.
Przerwanie PCINT na pinie PD7. W procedurze obsługi przerwania włączenie któregoś timera i zerowanie jego licznika. Timer skonfigurowany na PWM z zadaną częstotliwością i wypełnieniem. W procedurze obsługi przerwania Comp timera odliczanie trzech impulsów, potem wyłączenie timera i reinicjowanie licznika impulsów. Jeżeli koniecznie jest zachowanie okresu...
Witam, .......... Czy arduino uno posiada może wbudowany licznik który działa niezależnie od programu? Tak aby przerwaniem co sekunde mógłbym sprawdzać jaka jest wartość w liczniku który liczyłby impulsy? TAK! Arduino posiada ich trzy, funkcjonujące totalnie niezalenie od wykonywanego programu, z pewnymi jednak warunkami lub ograniczeniami. Są to :...
Niestety schemat mi nie pomógł. Ależ pomógł, bo nie znalazłeś w nim żadnych zależności dot. kasowania timera przy jego wyłączaniu poprzez ustawienie preskalera zero. Jest to logiczne, ponieważ gdyby licznik timera był automatycznie kasowany, to zmniejszałoby jego możliwości, bo nie można byłoby go "puścić dalej" Schemat preskalera pokazuje natomiast,...
niestety nie kasuje licznika life timer
Tutorial do avr taki znalazłem: http://avr.elektroda.eu/?q=node/8 Jak byś czegoś w sieci szukał, to raczej unikaj tutoriala z patron.net, uczy złych nawyków i jest nieco nie na czasie. Pomiar częstotliwośći na AVR realizuje się w miarę łatwo, przy wykorzystaniu timerów, jeden timer pracuje jako licznik impulsów z zewnątrz, a drugi odmierza czas, mozna...
A można jakoś ustawić ten licznik timera żeby zliczał np do 100?
Ja bym zmienil tryb pracy timera, tak, zeby nie trzeba bylo co przerwanie przeladowywac jego rejestrow - np. na CTC. Wtedy tym ile trwa obsluga przerwania sie nie martwisz - bo tam tylko zwiekszasz licznik sekund, a timer liczy swoje, czyli nic sie nie gubi. Kolejna sprawa to kwarc - jaki masz? Zapewne cos w stylu 4,000kHz, czyli sam kwarc ma +/-1kHz,...
Szukam gotowego licznika czasu z wyświetlaczem LCD i programowaniem. Czas do zaprogramowania od 0 do 10 min. Zliczanie w dół "0" uruchomienie przekaźnika. Możliwość zmian zaprogramowanego czasu . Nie interesują mnie układy z firmy F&F.
1. dobrze 2. zmienna counts nie jest nigdzie zerowana, to raz. pozatym algorytm IMHO jest bledny, to dwa <: idea jest taka, zeby byl on w stanie zmierzyc impulsy o dowolnej dlugosci, a nie tylko takie ktore zmieszcza sie w jednym okresie timera (ile on tam bitow ma). jednoczesnie wiec w pierwszym przerwaniu od gory (overflow) inkrementowany jest...
To trzeba zrobić nie na timerze a na liczniku, przynajmniej ja bym tak to wykonał. Wciskasz przycisk start, włącza się generator sygnału (powiedzmy z interwałem 10ms) podpinasz to do licznika i liczy. Zamiast czasu ustawiasz ile ma zliczyć impulsów i tyle (jest to odpowiednik czasu) Wtedy gdy sygnał jest to zliczasz, gdy sygnału nie ma to licznik stoi...
Tylko po co uK to migania LEDem? Zresztą jądro MCU nawet w tym nie uczestniczy, wykorzystany jest tylko generator sygnału zegarowego i licznik/timer.
(at)brt193 No cóż, najłatwiej to wykonać na gotowym timerze i czujniku optycznym, np światlowodowym. Niezbędne elementy czyli zasilacz, licznik /timer i czujnik zakupisz za kilkaset zlotych w np. firmie Telmatik, albo na Allegro. https://obrazki.elektroda.pl/1402328500_... https://obrazki.elektroda.pl/4481542000_...
atmega 16 ma liczniki/timery na innych portach
Ściągnij sobie z www.datasheetarchive.com notę aplikacyjną układu 4017. Masz tam nawet przykładowy schemat zastosowania - podłączasz zasilanie, clock inhibit do masy, reset do masy albo do ktoregoś wyjścia jak chcesz skrócić cykl, ewentualnie ręczny reset poprzez reset do masy przez rezystor 10k a do plusa przez mikroprzełącznik, clock to wejście zegarowe...
Ja mam to tak skonfigurowane: [syntax=c] // gpio enkoder - PB4, PB5 RCC->AHB1ENR |= RCC_AHB1ENR_GPIOBEN; GPIOB->MODER |= GPIO_MODER_MODER4_1 | GPIO_MODER_MODER5_1; GPIOB->OSPEEDR |= GPIO_OSPEEDER_OSPEEDR4 | GPIO_OSPEEDER_OSPEEDR5; GPIOB->PUPDR |= GPIO_PUPDR_PUPDR4_0 | GPIO_PUPDR_PUPDR5_0; GPIOB->AFR[0] = 0x00220000; //init enkoder RCC->APB1ENR |= RCC_APB1ENR_TIM3EN;...
https://forbot.pl/blog/kurs-stm32-f1-hal...
Jeszcze raz muszę napisać: Nadal w przerwaniu INT1 nie zatrzymujesz i nie zerujesz preskalera Timer2. Musisz być pewien, że timer0 i timer2 zawsze rozpoczynają dokładnie od początku. czyli by być pewnym poprawnego działania powinieneś w przerwaniu INT1: - zatrzymać oba timery, - wyzerować ich preskalery, - obliczyć co ma być obliczone, - wyzerować liczniki...
Witaj, No save spokojnie możesz użyć.... pod warunkiem, że nie korzystasz w obsłudze przerwania z instrukcji Bascoma bo jeśli tak to nie odkładając rejestrów na stos, zgubisz ich wartości i w najlepszym przypadku będą się działy różne rzeczy. Ja bym napisał wstawkę w asemblerze odkładając wcześniej na stos używane rejestry w tym SREG. Możesz też użyc...
Ponadto pierwsze przejście licznika masz pełne 0...256 a potem dopiero licznik liczy 100 impulsów.
Kolego, tak jak napisał Wojciech, masz kilka Timerów, musisz przeanalizować który jak działa. A do regulacji potencjometrem musiałbyś wykorzystać już analogi. Na początek radziłbym Ci potrenować coś z licznikami, timerami, porównaniami, a dopiero potem analogi, żebyś zrozumiał co jak działa i gdzie się zapisuje.
"mój" układ działa dla jednej połówki i w praktyce nie od zera. Czyli procesor jak jest podane 230V, cały czas, widzi aktywne impulsy (niecałe) 10ms i (trochę ponad) 10ms przerwy (nie aktywne). W programie robisz np. że jak raz wykryjesz aktywny, to zmieniasz stan flagi (bitu w pamięci) na 1 i liczysz kolejne 20ms. Jeśli przyjdzie kolejny aktywny to...
Witam wszystkich, powoli kończę swój projekt robocika zwiadowczego do wykrywania metalu, elektronika jak i 90% programu działa OK, niestety mam problem z obsługą timera w PIC16F84A który ma pracować w roli licznika, jeżeli chodzi o zliczanie impulsów z wewnętrznego oscylatora, to wszystko jest jak najbardziej OK, jednak jeżeli chce mu podawać impulsy...
czy licznik timera jest zmniejszany co 1 takt?
Według mnie to wychodzi tak : dla czujnika z 4 polami odbiciowymi przy prędkości 2000 rmp uzyskasz 8000 imp / min, co daje częśtotliwosć ok. 133 Hz. Przy tej wartości nie bedziesz mial problemów ze Shmittem. Wyjście z czujnika podajesz np. na wejście INT0 mikrokontrolera i w przerwaniu sterujesz wewnętrznym timerem. Po prostu przerwanie INT0 powinno...
może popatrz na to: https://stm32.eu/2012/04/11/timer-systic... Nie mam doświadczenia z STM32. Moja odpowiedź raczej dotyczyła licznika 4-bitowego.
Dzięki za pomoc, to po pierwsze, po drugie sprawa okazała sie banalnie prosta, tyle ze sam na to wpadłem. Są dwa liczniki i dwa timery w tym CI 8. Zauważ, ze timer w liczniku PS1 ma funkcje ,,HOLD", czyli czas zatrzymania po pomiarze nieskończony - do resetu oczywiście. Wystarczyło dodać przekaźnik czasowy ok, 3 sek. NO/NC pomiędzy wyjścia PS1 i PS2...
Kolega nas zwiódł tym wpisem, że zawsze mu się udawało skonfigurować Timer. ...a to był chyba zawsze "Zufal" :D CTC to skrót od Clear Timer on Compare - czyść/zeruj Timer kiedy jego licznik wynosi tyle co OCR0A. Kiedy więc OCR0A ustawisz na 100, a OCR0B na 200 to Timer doliczy do 100 i się wyzeruje. Nigdy nie dojedzie do 200 bo to CTC Teraz pomyśl co...
Cykl można odmierzać ustawiając generator impulsów co okreslony interwał tj. odpalac timer typu opózniającego moment załączenia zanegowanym wyjściem z tego timera. Podstawa czasu będzie stanowić interwał. Mozna pod tą zmienną podpiąć zmienną np. ze SCADY (InTouch, IFix itp) i generatorek dość uniwersalny gotowy. Co do zliczania impulsów to wyjście z...
powiem tak nie łatwe 3ds max
w dokumentacji znajdziesz przykłady zastosowania liczników
Podobnych jest w opór ale co mi po podobnych jak swojego nie złożę. Żebym chociaż schemat jakiś dorwał do tego licznika na dwóch timerach 555 to bym sobie poradził ale nigdzie nie idzie tego namierzyć.
Kilka pytań i spraw, ktore być mogą okazać się pomocne: Z wartości przeładowania T0 (D8EF) i faktu że przerwanie chodzi 100 razy/sek domyślam sie ze używasz kwarcu 12MHz . Jednak jesli ma to byc równo 100Hz to zauważ że podana u ciebie wartosć początkowa jest za mała o 1, bo powinno byc: T0pocz = FFFFh - (Fxtal / 12 / Fto) + 1 = D8F0h (a nie D8EFh)...
Tak naprawdę wszystko może być, ale najgorsza jest właśnie cyfrówka, tzn. liczniki, timery itp.
Masz narzucony zegar 12MHz i on jest podstawą do obliczeń. Timer będzie taktowany zegarem 1/12 Fosc czyli 1MHz i tego nie zmienisz. Masz do odmierzenia 2 czasy 3360us i 10640us. Wybierając tryb 2 Timera utrudniłeś sobie sprawę bo maksymalny okres który możesz zliczyć do 256us. W takim przypadku musisz zrobić dodatkowy programowy licznik. Największy...
Moja propozycja: http://abceko-wawa.pl/liczniki-timery/14...
Miałeś rację :) Gdy wpisywałem do OCR1A wartość niższą niż obecna, była duża szansa, że licznik timera już miał wartość większą od wpisanej, więc trzeba było czekać na jego przepełnienie i w tym czasie żaden dźwięk nie był odgrywany. Przynajmniej tak to sobie wyobrażam. Zrobiłem tak: 1. Zatrzymuję timer 2. Licznik timera ustawiam na 0 3. Ustawiam OCR1A...
Chciałbym zmierzyć jak długo wykonuje się przerwanie od DMA po zakończeniu transmisji z I2S. Myślałem nad uruchomieniem jakiegoś timera, który będzie zliczał mikrosekundy, ale kiedy wykonuje się jedno przerwanie z najwyższym priorytetem to inne są hamowane. Dobrze kombinujesz! Ale trochę przekombinowujesz :). Nie potrzebujesz żadnych dodatkowych przerwań...
Jak dla mnie to nadal nie jest do końca jasne jak działa ten układ po przeczytaniu opisu. Rozumiem na razie tyle, że bajty wysyła się po SPI i tyle Dalej sygnał zegara ze SPI odpala timer (input capture trigger, zajrzyj do PDFa) generujący impulsy i DMA kopiujące wartość z portu F do licznika timera. Dzięki temu timer przeskakuje cykl jeśli na linii...
Czesc, Mam problem z wywołaniem przerwania od comparacji timera w ATmedze 168. Przerwanie jest zglaszane gdyz testuje flage w rejestrze TIFR1, jednak pomimo tego nie jest wykonywane. Ustawialem juz chyba wszystkie handlary ale nie ma efektu. Z gory dzieki za pomoc. Ponizej przedstawiam wazniejsze czesci programu. ISR(TIMER1_COMPA_vect) { TRIAK1_ON;...
... Czas = 0.0000256 * Licznik Obroty = 60 \ Czas Obrotycal = Obroty ... to zabiera 1792 cykle procka, (nie mylic z licznikiem timera). pzdr.
W cytowanym wątku jest załączony plik Excel do wygenerowania danych, a w pierwszym poście jest kod (nie sprawdzałem go) na Atmegę 328. Potrzebujesz skonfigurować timer+licznik. Przy każdym wyzwoleniu timera pobierasz z tablicy kolejną próbkę i wstawiasz ją do triggera licznika. Istotne: - timer powinien wyzwalać się z częstotliwością ponadakustyczną...
licznik timer programowanie licznik timer rs232 licznik czasu timer
poziom sygnału telewizji naziemnej wskazania wilgotności blokada skrzynia
diora bluetooth gramofon daniel obroty
Wewnętrzna budowa wzmacniacza STK4192II Yamaha Majesty 125 1999 – układ i rozkład wskaźników, kontrolki, demontaż kokpitu