Proponuje TCD5.CTRLE=TC45_CCAMODE_COMP_gc; zamienić na: TCD5.CTRLE=TC45_CCAMODE_CAPT_gc; Oczywiście brakuje jeszcze sei() ale to pewnie zapomniałeś dodać wklejając na forum. Pozdrawiam Mateusz
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...
A jakby taki pomysł wypalił: Ustawić Timer jako Input Capture reagującego na obydwa zbocza sygnału. DMA skonfigurować na żądania od Timer i jako Circular buffer, Periph -> Memory. Analizować w wątku bufor kołowy z DMA, ślędząc licznik transferu i ładować do innego bufora wykryte stany 1 i 0 na podstawie róźnicy czasu obydwu zbocz. Z innego wątku ściągać...
(at)seba_x:A co to za bzdura?:> • Peripheral Features – Two 8-bit Timer/Counters with Separate Prescaler, one Compare Mode – One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode A co do pytania autora, nie, zliczanie umożliwiają tylko dwa pierwsze timery. Trzeciego można używać jako wewnętrznego.
3 Konfigurujesz Timer w tryb input capture taki sposób aby wyzwalał transfer DMA na którymś tam sobie kanale. Nie prościej właśnie output compare i mieć transfer co ileś tam taktów? 4\/3!!
Przecież timer liczy tak: niech MR0 = 4 to 0,1,2,3,4,0,1,2,4,0,... zatem trzeba odjąć 1. W takim razie zrób test preskaler ustaw na wartość taktowania uC, żeby do timer był taktowany 1 s natomiast do rejestru MR0 załaduj 10 a później 9 LPC_TMR32B0->MR0 = s - 1; Teraz dopiero zauważyłem, że AN jest jedno przerwanie od timera i jego wejścia CAP. Ale...
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...
Witam, drobna uwaga, sugerowałbym użycie któregoś z pinów ICP (Input Capture Trigger). Precyzyjniejszy pomiar, parę bajtów mniej kodu no i jest bardziej eleganckie. To kiedy uruchomisz timer to już od ciebie zależy, ja bym go uruchomił bezpośrednio przed wysłaniem serii impulsów do modułu. Obliczenia oczywiście banalne znając prędkość dźwięku, pokusiłbym...
Generalnie, W Bascomie obsługa RC5 pozostawia wiele do życzenia dlatego też Mark w najnowszej wersji ma wprowadzić obsługę RC5 na przerwaniu ICP ("prawdziwie" w tle) według poniższego kodu, który udostępniam i polecam: [syntax=basic4gl] $regfile = "m8def.dat" $crystal = 8000000 Config Timer1 = Timer , Capture Edge = Falling , Prescale = 8 '1 tick= 1...
Zacina sie bo to wada bascomowejo Getrc5. ten program musi działac, dlaczego go nie zastosowałeś? Spróbuj, tylko odbiornik IR musisz dac na wejscie ICP procesora. [syntax=basic4gl]$regfile = "m16def.dat" $crystal = 8000000 $baud = 9600 Config Timer1 = Timer , Capture Edge = Falling , Prescale = 8 '1 tick= 1 uS On Capture1 Capture_edges 'To przerwanie...
Robi się to prosto na wejściu ICP Atmegi, mierzysz czas pomiędzy kolejnymi zboczami, raz jest opadające, raz narastające itd.. potem to tylko interpretacja wyników, liczenie bitów i po odliczeniu 64 bitów z transmitowanych 66, bo dwa ostatnie dla uproszczenia procedury pomijasz. wyświetlasz na LCD lub wysyłasz po RS232 do komputera, a tam wyświetlasz...
Masz błędny kod. Jak chcesz by program działał jak trzeba to musisz wiedzieć co robi każda linijka. Włączasz przerwanie od przepełnienia timera0, a nie maż funkcji do jego obsługi. Deklarujesz funkcję do obsługi przerwania zewnętrznego, a nie masz funkcji obsługi i nie zezwalasz na to przerwanie. Na moje oko to po uruchomieniu timera procesor się zresetuje...
Napisz coś podobnego jak poniżej: [syntax=c] // zmienne globalne dostepne rowniez w przerwaniu volatile uint32_t PulseWidth; volatile uint8_t zakonczono_pomiar = 0; // obsluga przerwania TMR32B0 void TIMER32_0_IRQHandler(void) { static uint32_t LastCapture = 0; if ( LPC_TMR32B0->IR & (0x1<<4) ) // sprawdzenie czy przerwanie od kanalu zliczajacego...
Kolego może zacznij od czegoś prostszego bo nieskomplikowane zadanie a tu wydaje się być inaczej. Programowanie to nie tylko znajomość mikrokontorlerów, języków ale przede wszystkim umiejętność samodzielnego rozwiązywania problemów i wiążąca się z tym pomysłowość. Żeby przetestować ten kod wziąłem drugą Atmegę8 i kazałem jej nadawać impuls co 500ms...
Dobrze kalkulujesz. Co do kodu to jest zonk w tym, ze do zliczania impulsow i odmietrzania czasu uzywasz tego samego Timera0. Byc moze jeszcze gdzies jest blad lecz na chwile obecna dysponuje tylko tel. komorkowym. Funkcja Timer0_MicroSeconds musi dzialac na innym timerze niz Timer0 ! Dodatkowo lepszym rozwiazaniem byloby przepisanie stanu licznika...
Witam! Polecam ATmega8: Features: • High-performance, Low-power AVR® 8-bit Microcontroller • Advanced RISC Architecture – 130 Powerful Instructions – Most Single-clock Cycle Execution – 32 x 8 General Purpose Working Registers – Fully Static Operation – Up to 16 MIPS Throughput at 16 MHz – On-chip...
OK, rozumie Twoje intencje i z chęcią pomogę, bo minimalizowanie poboru energii to mój "bzik" :) Jednakże zacząłbym od tego, że przy takim zasilaniu gdy ustawisz ten mikrokontroler na kwarcu 32kHz , to zużywać będzie zaledwie 20 μA przy 3V i niewiele więcej przy 5V. Czy to nie wystarczy? Większe straty masz na samym zasilaczu. Co do usypiania -...
Ja rozumiem ze mozna szarpać się z darmowymi toolchainami, ale zeby z keilem?... Postawienie darmowego toolchaina trwa minute :)
(at)tmf - dziękuję za miłe słowa :) Właśnie takie było założenie co do grupy "docelowej". Myślę, że jeszcze długo ATmegi i ATtiny będą punktem startowym dla hobbystów ze względu na nawał informacji w Internecie i mocno zakorzeniony pogląd jakoby wszystko inne było drogie/trudne itd. W sumie chciałem, żeby w poradniku było trochę więcej nawiązań do...
TEQOOZ(R) Inteligentny regulator wentylatora Wi-Fi + przełącznik dotykowy Bluetooth (biały) | Oparty na kondensatorze - bez buczenia | Kontrola aplikacji Tuya i Smart Life | Kompatybilny z Alexa, Google Home, Apple Siri | Wykończenie szkła Ten kontroler wentylatora nadaje się do indyjskich domów z oprawą Roma Informacje o produkcie KONTROLA APLIKACJI...
QIACHIP Universal WIFI Ceiling Fan Light Remote Control Kit model: KLCW-110v/220v buy: https://obrazki.elektroda.pl/4192275500_... https://obrazki.elektroda.pl/4575798400_... This controller has the following functions: Turn the fan on or off. Turn the light on or off. Set the speed of the fan to low, medium or high. Set a timer...
Jakoś nie bardzo rozumiem jak Ty chcesz wykorzystać timer w trybie Input Capture Event. Ale to może dlatego, że nie używałem jeszcze nigdy tego timera TCB. Bo ja to sobie wyobrażałem tak, że chcesz wykorzystać ZCD do wyzwolenie timera który zacznie liczyć przez 10ms i zmieniać PWM w zależności od tego ile mocy ma być przekazywane. Czyli regulacja fazowa....
Nie lubię aktualizacji i nie lubię Debiana 12 więc skoro jedyny sposób na działanie dźwięku w Debian 9 to aktualizacja jądra to trudno - wolę już to niż nowy Debian. Zrobiłem to co w tym poradniku: stretch-backports w sources.list deb http://archive.debian.org/debian/ stretch main contrib non-free deb http://archive.debian.org/debian/ stretch-proposed-updates...
Nie wiem czy wiesz co będzie wynikiem jeśli weźmiemy dwie zmienne szesnastobitowe bez znaku i odejmiemy większą od mniejszej? Wynik nadal będzie dodatni jednak pomniejszony o poprzednią wartość tej mniejszej zmiennej. Tak więc proponuję rozważyć taki temat: Timerx w momencie pierwszego odczytu w INTx ma 65530. Nie zerujemy Tmerx . Timerx w momencie...
http://obrazki.elektroda.pl/9151953900_1... Założenia projektu: - obsługa wszystkich funkcji dostępnych z klawiszy sterujących magnetofonu, - wyświetlenie nazwy aktualnie wykonywanej funkcji na wyświetlaczu LCD, - wykorzystanie fabrycznego pilota zdalnego sterowania, - zasilanie układu z zasilacza magnetofonu, - możliwość podłączenia...
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...
Hint timer capture compare
Co do drugiego - cytat z manuala F4: "The counter is blocked while the auto-reload value is null" Jeżli chcesz mierzyć czas - niech timer odlicza czas. Możesz np. użyć funkcji capture - wtedy timer "zmierzy" np. długość impulsu podanego z zewnątrz.
Witam; próbuje poznać procesory Xmega, a dokładnie temat Timery. I nie mogę zrozumieć dwóch kwesti: 1) który rejestr odpowiada za podłaczenie zewnętrznych pinów procesora jako efekt działania timera w trybie PWM? Otóż, jeżeli timer ustawię na pracę w trybie single_slope lub na dual_slope , to jak mam zadeklarować aby wyjścia OCxx działały z tym timerem?...
Taaaaak... A gdybyś tak przez pomyłkę zapomniał w drugiej linii napisać if (przerwa) i zostawił samo else, to jak myślisz, co by się stało? Ile tysięcy razy trzeba wyświetlić "pomiar", żeby to zadziałało? Dlaczego uważasz, że jeden raz nie wystarczy? Dlaczego używasz sprintf (b. czasochłonna funkcja) do skopiowania łańcucha tekstowego z jednego miejsca...
Mam ustawiony timer w Input Capture Ustawienie timera z przepełnieniem licznika IC_Timers 40000 (po prostu potrzebowałem równy czas też dla odmierzania zegarka i innych bajerów do odmierzania czasu ) przerwanie co 20ms. https://obrazki.elektroda.pl/6280175200_... Od lewej okres, czas stanu wysokiego, aktualny timer ICR1, poprzedni timer...
Witam. this sample receives RC5 on the background. it will not block your code like getrc5 ' it requires a 16 bit timer with input capture. you can not use the timer yourself. ' some processors have multiple 16 bit timers. Config Rc5 = Pinb.0 , Timer = 1 , Mode = Background ' ^--- background interrupt mode ' ^--- this must be a 16 bit timer ' ^----...
Dobrze interpretujesz - timer chodzi sobie w tle w kółko, a Ty możesz mieć przerwania od kilku wejść Capture. Z racji tego, że na jeden timer są dwa wejścia Capture, musisz użyć dwóch timerów do całej tej operacji. 4\/3!!
uszkodzona: 15A U-Boot 2013.10.0-AK_V3.1.00 (Jun 30 2021 - 14:56:45) ramsize: 08000000 DRAM: 128 MiB efuse_read:0x00000007 Block:... Chip:8MB Bus:1 Name:FM25Q64 should_load_env cdh:... line:564 load env_relocate total partitions: 8 In: serial Out: serial Err: serial Net:...
Myrek1: DMA wyzwalasz timerem, nie zmianą stanu portu. W dotychczasowych STM32 jedynym sposobem na wyzwolenie DMA przez port jest użycie na tej linii trybu capture timera - i wtedy oczywiście DMA wykona się w kilka cykli zegarowych po zmianie stanu linii. Na 80 MHz STM32L4 jest to czas ok. 140 ns. W przypadku wyzwolenia DMA przez timer w trybie compare/PWM...
Bez sensu. Użyj timera w trybie capture i tyle. Na odpowiednim zboczu timer zatrzaśnie wartość, z różnicy pomiarów masz z dokładnością do 1 impulsu timera czas impulsu. I nie robi rożnicy jezyk programowania.
http://www.atmel.com/dyn/products/app_no... AVR135: Using Timer Capture to Measure PWM Duty Cycle
Timery (...) Wystarczy włączyć nieużywane. Właśnie tak powinno się to zrobić, ale biblioteka TimerOne blokuje taką możliwość. Dlaczego blokuje? W bibliotece zadeklarowane są wektory Dodano po 3 może Timer2.initialize Zamiast wpisywać w każdym przerwaniu do CNT (jeśli już to sie robi, to na początku obsługi przerwania), co może wprowadzać niedokładności,...
Jeśli dobrze rozumiem nazwę "Analog Comparator", to zdecydowanie porównuje on sygnał analogowy. Wyjście komparatora jest wyprowadzone tylko na bit ACO w rejestrze ACSR, na generator przerwań od komparatora oraz opcjonalnie pod Input Capture timera . Wyjście komparatora nie jest wyprowadzone na żaden zewnętrzny pin.
Co ciekawe mam pewne wątpliwości odnośnie dokumentacji. Timer TB0 uruchamiam w domyślnym trybie Periodic Interrupt mode, gdzie TOP określam wartością rejestru CCMP = 26666, co przy częstotliwości taktowania timera równej domyślnej częstotliwości taktowania mikrokontrolera 2.66MHz powinno dać przerwanie co ok. 10ms (100Hz). Co ciekawe jedynym przerwaniem...
No właśnie tylko u mnie dość cienko z programowaniem i obawiam się, że może mnie to przerosnąć. Do tej pory udało mi się odpalić wiele rzeczy, ale nie wiedziałem ze z tym będą takie problemy. Dobrze by było jakbyście rzucili też okiem na całość programu, czy jest jakoś w miarę poskładany. Edit: Znalazłem coś takiego: [syntax=vb] //Timer1 Capture //Timer1...
Witam! Przeglądam specyfikację ATMegi32, ale nigdzie nie mogę znaleźć jasnej odpowiedzi na moje pytanie. A chciałbym się dowiedzieć, czy Timer1 mogę skonfigurować jednocześnie jako PWM (do sterowania silnikami DC) oraz Input Capture (chcę mierzyć długość pulsów). PWM mam już zaprogramowane, natomiast pojawiła się konieczność właśnie mierzenia długości...
3. Wykorzystać odpowiedni do tego celu timer z funkcją Input Capture (ICP). W AVR-ach jest to Timer1, który posiada pin ICP1.
Jest możliwość pomiaru czasu wtrysku na przerwaniach w AVR'ach. Trzeba podpiąć sygnał z wtryskiwacza (oczywiście przez układ dopasowujący) jednocześnie na wejście przerwania zewnętrznego (np. INT0) i wejście ICP (input capture). Potem trzeba skonfigurować zewnętrzne przerwanie aby reagowało na zbocze opadające (początek czasu wtrysku), licznik T1 ma...
Przecież timer z input capture może chodzić w kółko, tylko bez przerwania (bo i po co) - drugi timer odmierza te 25ms i w przerwaniu od tego okresu odczytujemy ostatni wynik ICP. Nie rozumiem problemu... 4\/3!!
Jeszcze w rejestrze TIM1->CR1 spróbuj włączyć timer (bit CEN).
Ale w czym problem? Wpuszczasz sygnał z DHT na wejście timera i mierzysz czasy trwania impulsów - to b. proste. Timer zgłasza przerwanie capture przy zmianie poziomu na linii danych. To jest rozwiązanie problemu, a nie pisanie kodu, który programowo odlicza czas i wyklucza możliwość robienia czegokolwiek innego podczas transmisji.
Jak dokładnie działa timer w trybie input capture ? Liczy cały czas od momentu ustawienia bitu TIM_CR1_CEN czy od momentu wykrycie impulsu ?
Witam Do pomiar prędkości obrotowej wentylatora z PC chciałem użyć sygnału z czujnika halla, całość podłączone jak na schemacie poniżej do wejścia atmegi 16 ICP1. Chciałem użyć również wbudowanej funkcji timera 1 do pomiaru okresu. I teraz co nie działa... Pomiar jest mało dokładny i strasznie skacze - przy pomiarze prędkości obrotowej max (7200) wynik...
Pozostaje tylko zwłoka faktycznej obsługi przerwania która nie jest stała więc dokładność wyniesie kilka cykli. Jeśli to pisałeś w odniesieniu do mojego postu, to znaczy że nie wiesz jak działa Input Capture od timerów. Przerwanie mogło by przyjść w dowolnym momencie, byle przed następnym zboczem opadającym. Po wystąpieniu zbocza timer automatycznie...
capture timer bascom capture timer stm32 capture failed
kabelki termostacie schrack przekaźnik tecumseh ustawienie zaworów
Programy do automatycznego wyłączania monitora PC Daf XF 105 – żółta kontrolka „silnik ostrzeżenie” zapala się i gaśnie podczas jazdy