W AVR bym po prostu na czas "składania" zmiennej m w funkcji read_us wyłączył globalnie przerwania - cli() i po zapisaniu wartości do zmiennej m włączył - sei(). Czy tutaj trzeba wykonać podobną operację? Ale to Ci nic nie da, bo przecież timer chodzi nadal (; Oraz czy mógłbyś Freddie opisać jeden ze sposobów jak uzyskać "sparowany" odczyt. Zrób to...
Hej Niewiem czy windzie jest dostepny timer o precyzji mikrosekund. Ale znalazlem taki timer, moze sie przyda: ZEN TIMER v2.2: The Zen Timer is a high precision (microsecond accuracy) timing library for 16 bit real mode, 16 bit protected mode and 32 bit protected mode programs. Supports Borland C++, Watcom C++, Visual C++, Symantec C++, Metaware C++...
https://obrazki.elektroda.pl/2830987100_... Pytanie: Jakimi aktywnymi układami elektronicznymi mogę zastąpić diody transil i bezpieczniki? Odpowiedź: Zabezpieczeniami przeciwprzetężeniowymi. Producenci we wszystkich branżach nieustannie dążą do osiągnięcia najnowocześniejszych systemów, próbując jednocześnie zrównoważyć takie innowacje...
wysteruje mi 24 wyjścia jedno po drugim Chodzi o wyjścia samego mikrokontrolera albo jakiś dodatkowy układ ? W zasadzie chodzi o to, by w odstępach około 80-100 milisekund wysterować ledy podpięte do wyjść mikrokontrolera (24 sztuki) jedna po drugiej. To jeszcze napisz o jakich czasach mówimy i jaka ma być precyzja. Bo jeśli mówimy o czasach rzędu...
Najprościej można tak: 1. Ustaw przerwanie zewnętrzne na pinie ECHO wyzwalane na obydwa zbocza. 2. Gdy przychodzi przerwanie odpalasz timer pracujący z rozdzielczością powiedzmy 1us. 3. Gdy przychodzi kolejne przerwanie (od opadającego) to wyłączasz timer i sprawdzasz w rejestrze timera ile mikrosekund odliczył. 4. Wynik w us podstawiasz do wzoru i...
Witam! Postaram się wyjaśnić kilka niedomówień. 1.W S7-200 są 4 timery 1ms, 16 – 10ms i 235 -100ms. 2.Z pomiarem czasu z rozdzielczością mikrosekund za pomocą timera nie poradzi sobie większość PLC i to nie tylko małych. Należy pamiętać, że o tym ,czy timer doliczył czas ,czy nie jest sprawdzane tylko raz w jednym obiegu pętli programowej. Inaczej...
A jaka rozdzielczosc pomiaru potrzebujesz ? To chyba zasadnicza kwestia. Czyli na ilu bitach chcesz mierzyc te kilka mikrosekund ? Pozdrawiam, yego
Chodzi o to że protokół dmx ma takie ramki jak na obrazku http://obrazki.elektroda.pl/2918076400_1... na razie za pomocą UART zrealizowałem ramkę danego kanału, które to dane wysyłam za pomocą nóżki Tx, ale brakuje mi jeszcze mi początkowej ramki "Mark After Break (MAB)" MAB następuje natychmiast po zakończeniu Break i ma postać impulsu...
Nemo: Przeciez nie ma to znaczenia gdyz przerwanie nastepuje co rowny okreslony czas, tylko ze z opuznieniem a opuznienie zedu mikrosekund nikomu chyba nieprzeszkadza ;) Zgloszenie przerwania --> skok do timer 0,1s Zgloszenie przerwania --> skok do timer 0,1s Zgloszenie przerwania --> skok do timer 0,1s ... Timer: czeka pare cykli wykonuje procedury...
Witam, Chcę zbudować bardzo prosty zegarek a tak właściwie stoper. Chciałbym żeby mylił się co najwyżej 1min/tydzień. Napisałem program z użyciem timera, ale zegarek po ośmiu godzinach spóźnia 20 sekund. Czy wewnętrzny oscylator działa stabilnie, to znaczy jeżeli ma częstotliwość odbiegającą od 4Mhz to taka będzie czy będzie się wahała i miała różne...
A ja proponuję może najpierw się zastanowić nad tym do czego opóźnienia i wtedy dobrać sposób czy na timerze czy bez timera. Tak mi się wydaje, że próby zaprzęgania Timerów do super "idealnego" odmierzania tak gigantycznego czasu jak 1 sekunda to jak strzelanie z armaty do komara (choć może się mylę - ale ciekaw jestem do czego tak na prawdę może być...
Podejrzewam, że będzie potrzebna jakieś formowanie impulsu ze zbocza. Albo poszukać innych rozwiązań: 74HC123 (podwójny przerzutnik monostabilny, co pozwala uzyskać dwa różne czasy; jest też podobny układ z serii CMOS 4000) - nadaje się do czasów od mikrosekund do minut, jakkolwiek wymaga układu RC o odpowiedniej stałej czasowej, przy minutach potrzebna...
Układy proponowane wyżej nie spełniają wymagań - koledzy nie zwrócili uwagi, że tu trzeba regulować 4 czasy. Sposób - układy 74HC/HCT123 http://www.nxp.com/documents/data_sheet/... - 4 przerzutniki łączone szeregowo w pętlę i wyzwalające się po kolei pierwszy -> drugi, drugi->trzeci .... czwarty->pierwszy. Każdy z przerzutników może mieć...
Mam problem z napisaniem programu rozpoznającego stany w sieci. Na wejście INT0 procesora podpiąłem sygnał z sieci 1Wire. Chciałbym rozpoznać trzy stany w sieci: - reset (czyli ściągnięcie linii danych do 0 na 480us) - nadanie 0 - (czyli 10us stan niski, 80us stan wysoki) - nadanie 1 - (czyli 80us stan niski, 10us stan wysoki) 0 i 1 następują po sobie,...
Robiłem próby sprzętowym licznikiem jednak rozwiązanie to się nie sprawdzało(nie nadaje sie do tego celu). A jeżeli chodzi o sprzętowy timer to mógłbyś opisać jego działanie. Co sie dzieje po wystąpieniu impulsu na odpowiednim pinie? zostaje gdzieś zapisana ta wartość czasu w której wystąpił impuls? w jakich jednostkach jest ten czas bo ja potrzebuje...
Panowie postanowiłem wykonać test wbudowanych w atmel studio typów fixed point vs float. Na razie tylko samych _Accum z saturacją ale to co zobaczyłem nie napawa optymizmem gdzie jest błąd?Dodam że -atmel studio 7, -wewnętrzny zegar 8MHz -Atmega16. -Do pomiaru czasu używam timer 1. Najpierw kod, testujemy 4 działania +,-,*,/ dla typu _Accum i float....
Wydaje mi się, że to może działać tak: Zrób sobie przerwanie EXTI na zbocze narastajace na linii A enkodera, w przerwaniu sampluj linię B, dzięki czemu ustalasz kierunek - w tym samym przerwaniu ustalasz stan linii U/D i odpalasz timer, ktory wygeneruje impuls STEP. Latency rzędu 1us jest osiągalne w ten sposób: 12 taktów na wejście w ISRa, z kilkanaście...
no przecież jest wszystko tam dokładnie napisane Co pewien czas masz wysłać jeden Bit ( 1.778ms) czyli polecam zrobić tak: procedurka czekaj; begin sleep(889); end; procedurka jeden; begin //wystawjeden przez 889mikrosekund na porcie czekaj; end; procedurka specjalnybit; begin //wystaw przez 1.778 jedynke na porcie end; procedurka zero; begin czekaj;...
Witam. Zadeklarowałem zmienną Losowa_Waga jako Word - niestety sytuacja się nie zmieniła. Na swoje usprawiedliwienie mam tylko to, że przy sprawdzaniu porawności programu korzystałem z polskiego helpa do Bascoma AVR (help v. 1.11.7.7) i tam w przykładzie był Integer ;) . Instrukcję Print przeniosłem do głównej pętli i aby nie wysyłać niepotrzebnie tych...
Zaznacze na początku, że nie jestem jeszcze zbyt mocny jeśli chodzi o mikrokontrolery. Napisałem (na podstawie kodów znalezionych w sieci) programik, który za pomocą przycisków pozwala zwiększać/zmniejszać wypełnienie sygnału (PWM) i traktuje nim diodę. Chciałbym za pomocą dwóch innych przycisków traktować drugim sygnałem PWM drugą diodę. Jak to zrobić?...
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...
Jakiego typu jest absolutnie absurdalny i perwersyjnie wypaczony pomysł, aby mając OSa robić takie delay'e w wątkach ??? Również o podobną perwersję zakrawa wykonywanie przerwania timera co mikrosekundę tylko po to, zeby zmniejszać tam jakąś zmienną. Wez timer, skonfiguruj go jako one-shot, skonfiguruj mu takt na 1us, do ARR wpisz chciany czas w us,...
Jednak zrób to z timerami. Twój procesor wykonuje jedną instrukcjŁ an ogół w jedną mikrosekundę. Pętla, w której odliczasz jednomikrosekundowe opóźnienia samy wykonuje się kilka mikrosekund - tak zrobione opóźnienia są trudne do określenia, w każdym razie niewiele mają wspólnego z tym, co chcesz uzyskać. Do sterowania serwem (zwłaszcza płynnego) potrzebujesz...
Na forum timerów jest zapewne sporo - użyj wyszukiwarki. Podobnie w sieci. Pisząc "odlicznie czasu" masz na myśli zegar czasu rzeczywistego (sek, min, godz), czy jakąś inną jednostkę np. mikrosekundy, itp? WinAVR - jeśli możesz zainstaluj AVR Studio 4 i nie męcz się więcej.
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ń...
Proszę zapoznać się np. z tym tematem : [url=http://www.elektroda.pl/rtvforum/vi... Dokładny timer, mikrosekundy.
Zapamiętujesz timestamp ostatnio odebranego znaku (w milisekundach albo w mikrosekundach w zależności od prędkości transmisji). Następnie testujesz ile czasu upłynęło od odebrania ostatniego bajtu (np w przerwaniu od timera). Jeżeli czas od odbioru ostatniego bajtu > 3.5T to uznajesz że odebrałeś poprawną ramkę.
Zapytaj bota Bardzo proszę. Inicjalizacja timera : Funkcja timerBegin(frequency) tworzy i uruchamia timer z określoną częstotliwością. W tym przypadku ustawiamy częstotliwość na 500 Hz, co odpowiada okresowi 2 ms. 2. Przypisanie funkcji obsługi przerwania : Za pomocą timerAttachInterrupt(timer, &onTimer) przypisujemy funkcję onTimer jako obsługę...
/* Setup SysTick Timer for 1 µsec interrupts */ Następny... Czy naprawdę uważasz, że przerwanie co jedną MIKROsekundę to jest dobry pomysł? Twój program się "zatrzymuje", bo po prostu w kółko wchodzi i wychodzi do przerwania (które zresztą nie jest nikomu do niczego potrzebne, ale...). Jeśli do tego próbujesz pracy krokowej, to już w ogóle Twój...
Chciałem zrobić taką uniwersalną funckję, która będzie wstrzymywała program na określoną ilość us z wykorzystaniem timera. Projektując urządzenie wykorzystujesz jego zasoby (wewnętrzne moduły) w taki sposób, by spełniły wymagania jakie stawiasz przed urządzeniem. Tworzenie ogólnych (czytaj: do uniwersalnego zastosowania w różnych projektach) funkcji...
Podczas odbioru danych z pinu PD2 ( funkcja zgłoszenie ) występuje błąd tylko wtedy gdy przerwanie z timera 0 jest aktywne. Gdy na czas odbioru danych zablokuję to przerwanie procesor ładnie odbiera wysyłane do niego dane. I moje pytanie brzmi: Co jest nie tak z przerwaniem? Konkretnie to, co wskazał albertb: ... jeśli masz włączone przerwanie to jego...
Timer 16-bitowy chodzący w kółko, linie INT0 i INT1 zaprogramowane na przerwania od obu zboczy, obsługa przerwań odczytuje wartość timera i wykonuje stosowne obliczenia. Jeśli procedury obsługi innych przerwań będą poprawnie napisane, nie ma powodu, żeby to nie zadziałało. Powinieneś uzyskać rozdzielczość i dokładność na poziomie kilku mikrosekund.
Takie rzeczy to tylko sprzętowo na timerze w trybie PWM. Twoje założenie o tym, że pętla wykona się w 1..2 us jest niezbyt realistyczne - przyjmując w uproszczeniu, że ATmega wykonuje jedną 8-bitową operację na cykl, Twoja pętla wymaga przynajmniej kilkudziesięciu takich operacji, więc jej czas wykonania wyniesie min. kilkanaście us. A poza tym - nie...
Tojmak987123 pomyliłeś pojęcia: Szerokości wypełnienia nie mierzy się w Hz tylko w procentach lub jednostkach czasu (np. mikrosekundach). Twój program wywołuje przerwanie Timera0 co (256-194)*64 cykli zegara, Timer1 jest ustawiany 5 razy rzadziej czyli co 19840 cykli zegara tylko tyle możesz nim odmierzyć (a nawet trochę mniej ze względu na czas ustawiania)....
Rozumiem, ze zmienne zadeklarowales jako volatile, czy zapomniales o tym?:) Druga sprawa - komplikujesz. Ustaw 16-bitowy timer tak, zeby np. mial impuls co 1us, albo czesciej, w zaleznosci jaka potrzebujesz rozdzielczosc. Impuls, ktorego czas badasz wyzwala przerwanie, odczytujesz zawartosc 16 bitowego timera, czekasz na kolejne przerwanie, ponownie...
Co to jest Prescale ? Timery w mikrokontrolerach AVR nie muszą być taktowane zegarem systemowym - często jest on za szybki dla potrzeb projektanta. Inżynierowie z Atmela rozwiązali ten problem, umieszczając dodatkowy (nieco ukryty) licznik zwany prescalerem. Z tego licznika otrzymujemy kilka nowych sygnałów zegarowych, z których skorzystać mogą timery....
To przeliczenie które Ci podałem jest do pomiarów bardzo krótkich okresów czasu - rzędu mikrosekund - z wykorzystaniem właściwości ElapsedTicks. Jeżeli mają być milisekundy, wyświetl po prostu ElapsedMilisecond, bez żadnych przeliczeń (patrz: post #2)... Uwzględnij też, że w postaci którą Ci podałem mierzony jest czas wykonania kodu między Start() a...
Witam. Timer mikrokontrolera '51 taktowanego zegarem 11.059200 MHz zliczy w ciągu jednej sekundy 921600 impulsów. Ze względu na wielkość timera (2 bajty) może Kolega zliczać setne części sekundy - ustawić przerwanie co 9216 impulsów. Każde wywołanie przerwania zwiększy zmienną o 1, czyli mamy w niej wynik pomiaru z rozdzielczością 0,01 s. Rozwiązanie...
Zamiast tak kombinować to nie prościej wziąć XMEGA32, która nie jest droższa, a może nawet tańsza i ma 32-bitowe RTC, które rozwiązuje problem sprzętowo. A jeśli to nie wystarczy to sobie przez event system można kolejny timer podłączyć i mieć 48, 64 czy ile tam potrzeba bitów.
Witam, chciałem zrobić sterowanie silnikiem krokowym przy wykorzystaniu Timera. Niestety milisekundy są za długie a potrzebuję uzyskać większe prędkości. Wcześniej zamiast timera miałem delayMicroseconds(); ale z timerem jest łatwiej, tylko nie mogę znaleźć sposobu żeby obliczał w mikrosekundach. Czy jest w tej bibliotece taka opcja? a może są inne...
sleep() ?? lub element timer zależy co kto woli ;) ---- zrób własną funkcję pętli
Wystarczy uruchomić któryś z timerów procka. Może być w tle, wystarczy np. [Start Timer0] wtedy połówki TL0 i TH0 zaczną liczyć. Dane z TH0 i TL0 możesz wykożystać do swoich potrzeb.
Też tak mi się wydaje. Sprawdzę po niedzieli czy to problem z delayem od HALa bo z tym programowym problemu raczej nie ma. Stosuję dwie funkcje ponieważ jedna daje opóźnienia w ms - HAL_Delay(), a druga to zrobiona programowo na timerze funkcja delay() która ustawia opóźnienie w mikrosekundach.
OK Blue_Draco Czyli mam do wykorzystania timer1 Atmegi8 Jest on 16 bitowy timer2 - 8 bitowy Przypuśćmy że wykorzystam timer2 bez prescalera to wykorzystując powyższy wzór bez ładowania żadnej wartości do timera mam na czytsto 1/ 8000000 /256= przerwanie co 32 mikrosekundy to chyba za mało do odmierzenia kilku mikrosekund nie wiem jak będzie z timerem...
Witaj !!! Tak jak napisał kolega LightHouser, nop to rozkaz, który nie robi na prawdę nic ale zajmuje cykl rozkazowy. W standardowym procesorze '51, zastosowano preskaler przez 12. Znaczy to, że częstotliwość taktująca (kwarca) wstępnie jest dzielona przez 12. Jeżeli zastosujesz kwarc np:12MHz to naprawde rdzeń procesora będzie taktowany częstotliwością...
W pierwszym kodzie pojawia się czas 10us (mikrosekundy), później milisekundy. Rozumiem, że ma być 10ms? Dla 10us można jeszcze zautomatyzować przeładowanie timera np. tak: [syntax=asm51] LED2 BIT P1.2 ORG 0000h LJMP START ORG 000Bh ;TU ZACZYNA SIE OBSLUGA PRZERWANIA T0 CPL LED2 reti ;powrót z obslugi przerwania START: MOV TMOD, #00000010B ;USTAWIENIE...
z tego co wiem to delay to komenda to odliczania czasu w mikrosekundach, a do dokładnego odliczania czasu należy używać funkcji Timer.
Co prawda nie do enkodera, a do czujnika HC-SR04, ale reguła ta sama, pomiar szerokości impulsu. Zrobiłem to na systemie zdarzeń. Kod: [syntax=c]// konfiguracja systemu zdarzeń pod czujnik HC-SR04 EVSYS.CH0MUX=EVSYS_CHMUX_PORTD_PIN1_gc; // źródłem eventu pin PD1 PORTD.PIN1CTRL=PORT_ISC_BOTHEDGES_gc; // ustawienie przerwania na oba zbocza TCD0.CTRLB...
Przecież Google znajduje: http://delphi.about.com/od/windowsshella... http://stackoverflow.com/questions/14834... P.S. Do czego ci aż taki szybki timer? (Może sprawę da się załatwić w inny sposób?)
Istnieje coś takiego jak HPT (High Performance Timer), pozwalające odmierzać czasy na poziomie mikrosekund i faktycznie było już omawiane na tym forum. Rozdzielczość czasu mocno zależy od sprzetu. Trzeba mieć to na uwadze, pisząc program.
impuls mikrosekund timer wieża timer cykliczny
check engine wilgoć immobilizer implausible signal zaczep zamka drzwi przednich
sterownik defro k1prv4 melitta barista
Schemat podłączenia czujnika poziomu wody w pralce Beko HTE8614YBST Zegarek Honda HR-V nie działa po podłączeniu zasilania