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...
Przykłady Liczniki - wyłącznik światła zliczający osoby wchodzące i wychodzące - sterowanie parkingiem (zlicza ile wjechało, ile wyjechało i czy jest wolne Timery - światła na skrzyżowaniu - sterowanie podlewaniem ogrodu - sterowanie urządzeniem do prania
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...
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...
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,...
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
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.
Zapomniałem jeszcze napisać o najmniejszych CPU :) W Twoim są tylko BCD type. Podstawę czasu wybierasz instrukcją - TIM 100ms, TIMH 10ms, TIML 1s lub 10s. Pierwsza liczba to numer timer'a (analogicznie, jak T siemens'a). Druga liczba to wartość zadana, wpisuje się szesnastkowo (#). Możesz ustawić od #0 do #9999, czyli dla TIM 0 do 999,9s. W Help ->...
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...
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...
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...
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).
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ń).
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.
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..
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?
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...
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ść...
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...
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,...
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...
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...
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,...
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.
Chodzi o to, że po pierwszym przerwaniu TCNT1 będzie miał wartość 0, czyli zliczy potem 65536 impulsów. Zaś do generowania, jak Ty chcesz, przerwań co określony odcinek czasu służy tryb CTC. Wtedy w rejestrze OCR ustawiasz ilość impulsów, które chcesz zliczyć, i wygenerować odpowiednie przerwanie.
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...
Tryb 2 timera ma automatyczne przeładowywanie licznika, nic się nie późni.
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...
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.
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
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...
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ć...
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...
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...
(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;...
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...
Poczytaj w dokumentacji, a jeżeli angielski na zbyt słabym poziomie, to dokumentację w j.polskim znajdziesz tutaj: http://mikrokontrolery.blogspot.com/2011...
To zależy. Z opisu autora (nie analizowałem kodu) wynika, że timer jest zatrzymany, stąd kolejność nie ma znaczenia. Przy okazji mała poprawka, bo zamiast TCNT0 podałem TCCR0. Zerując TCCR0 zatrzymamy timer ponieważ w tym mikrokontrolerze są tam tylko bity preskalera.
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,...
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.
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...
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....
https://termoplus.pl/liczniki-timery-zad...
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, .......... 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 :...
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.
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ć...
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...
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,...
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...
Musisz też załadować nową wartość do licznika timera.
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...
niestety nie kasuje licznika life timer
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.
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...
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...
atmega 16 ma liczniki/timery na innych portach
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_...
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...
Ś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...
"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...
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...
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.
Ponadto pierwsze przejście licznika masz pełne 0...256 a potem dopiero licznik liczy 100 impulsów.
Czesc ! Portu B nie musisz ustawiac , po starcie procesora wszystkie porty sa ustawione jako wejscia ponadto : movlw80h movwfTRISB ustawia Ci jako wejscie jedynie RB7, pozostale to wyjscia MOVLW 0 MOVWF TRISA teraz caly porta A ustawiles jako wyjscia, malo tego uzywajac timer 0 i podzielnika 1:256 pamietaj ze aby zwiekszyc jego stan o jeden...
czy licznik timera jest zmniejszany co 1 takt?
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ć.
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...
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)...
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...
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.
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...
powiem tak nie łatwe 3ds max
w dokumentacji znajdziesz przykłady zastosowania liczników
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ń...
Tak naprawdę wszystko może być, ale najgorsza jest właśnie cyfrówka, tzn. liczniki, timery itp.
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...
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...
... Czas = 0.0000256 * Licznik Obroty = 60 \ Czas Obrotycal = Obroty ... to zabiera 1792 cykle procka, (nie mylic z licznikiem timera). pzdr.
Można wywołać przerwanie TIMERA, w trybie PWM, w momencie przeładowania licznika, a więc gdy licznik przekroczy ustawioną dla danej rozdzielczości wartość maksymalną. Musisz tylko włączyć przerwania dla danego Timera. Oczywiście częstotliwość wywoływania tego przerwania jest ściśle powiązana z ustawieniami PWM (jest równa częstotliwości działania PWM)....
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...
Witam Mam taki problem, że potrzebuję ośmiu przykładowych prostych programów na ok 10 - 15 linijek ( w IL języku). Chodzi mi tu o 4 programy z timerami, 4 z licznikami.
licznik timer programowanie licznik timer rs232 licznik czasu timer
rozruch transformatora podstawowy narzędzie lutowniczy hasło wygasa
ekspres naprawa żarówka szeregowo
Lokalizacja czujnika stopu w Peugeot 206 Brak dźwięku w nawigacji Mazda CX-5: przyczyny i rozwiązania