A nota katalogowa na to: A timer/counter can be configured for either capture or compare functions, but cannot perform both at the same time. To samo dotyczy pytania o piny pwm (pinout and pin function) oraz I/O ports, konkretnie gdzie szukać powinien kolega informacji to podejrzeć struktury w ioXXX.h a dokładniej co tam ciekawego siedzi w PORT (polecam...
Oczywiście, że event system może reagować na zbocza - robi to analogicznie jak system przerwań. Czyli musisz skonfigurować poziom/zbocze i podłączyć pod event system.
Czytam i sam się pogubiłem hehe . Czy tu chodzi o względne przesunięcie (tmf) czy bezwzględne (satanistik). Parę miesięcy temu robiłem sterowanie PID dla servo Xmega w bascom . [youtube]https://www.youtube.com/watch?v... Nie obyło się bez problemu , który polegał na zliczaniu bezwzględnym więcej niż 65535 impulsów . Mój wpis z innego...
Oczywiście możesz zrobić przerwania od QDEC - pin generujący event może też generować przerwanie. Lecz nie jest to potrzebne. Porównanie z określoną wartością możesz uzyskać sprzętowo - np. timer porównuje wartość CNT (licznik impulsów z enkodera) z CCx, równość może wywołać przerwanie. Co do przeliczania impulsów - jeśli zostaną ci wolne timery to...
Ostatnio zapragnąłem męczyć się z tym maleństwem (xmega32E5).. Próbuje skonfigurować timer tak aby udało mi się zmierzyć szerokość impulsu na jednym z portów. Dla Xmega128A3U nie stanowi to problemu i mój kod konfiguracji timera wygląda tak: [syntax=c] PORTA_PIN5CTRL= PORT_ISC_BOTHEDGES_gc | PORT_OPC_PULLUP_gc; EVSYS_CH2MUX=EVSYS_CHMUX_PORTA_PIN5_gc;....
No to bez problemu, wykorzystaj SPI/USART w trybie SPI, wtedy dane musisz podawać 8 razy rzadziej niż pixelclock (a nawet rzadziej, bo USART ma bufor), czemu podoła zwykła ATMega. XMEGA to nawet może spać podczas generowania obrazu, bo generacją linii zajmuje sie DMA, a synchronizacji timery :)
https://obrazki.elektroda.pl/3227491500_... https://filmy.elektroda.pl/98_1514068986... Właściwie mamy już Święta i świąteczny konkurs w DIY. A w nim sporo konstrukcji opartych na programowalnych diodach WS2812B. Stąd też, aby ułatwić innym realizację świątecznych projektów oświetleniowych, postanowiłem podzielić się rozwiązaniem...
https://obrazki.elektroda.pl/9151185000_... Autor poniższego zestawienia jest inżynierem i konsultantem wsparcia dla systemów wbudowanych. W swojej karierze poznał on szereg różnych architektur mikrokontrolerów, różniących się wydajnością, wyborem peryferii, poborem zasilania etc. Wybór odpowiedniego układu stanowi zawsze o sukcesie...
Proszę, niech mnie ktoś oświeci jak skonfigurować dowolny timer w XMEGA ale serii E5 ! - one mają timery typu 4/5 czyli inne niż pozostałych XMEGA-ch. Mam podłączony buzzer do pinu D0 i co bym nie robił dostaję na nim przebieg o częstotliwości 34kHz. F_CPU=2000000. Atmel Studio 7. http://obrazki.elektroda.pl/2870512400_1... W ogóle chciałbym...
TCC0.PER powinno być chyba raczej 31 dla 1 MHz nie? Bo jeśli masz 32 to razem z zerem jest to 33 kombinacje a 32 M / 33 to nie jest 1 M. Przynajmniej ja do tej pory żyłem w takim właśnie przekonaniu :)
Lepsza opcja to timery programowe https://github.com/adamdunkels/uip/blob/...
Wiem ile to 20/2, ale z jakiejś przyczyny nie zlicza pełnej połowy, o czym wspomina autor. Będę robił licznik częstotliwości i czasu to zbadam temat dokładnie. xmega, bo jej timery są chyba jakieś skopane albo tak przekomplikowane że nie umiałem na niej uruchomić To drugie. Mam minikombajn pomiarowy na Xmega i działa ok. W EP był cykl artykułów na...
Napisałem ci, że Atmel wydał stosowny dokument, w którym opisuje sposób tworzenia nazewnictwa. Jest on zresztą banalny - np. timer, zaczyna się na T, więc wszystko co jest z nim związane też :) Co do wskaźników - wskaźnik definiuje się podając nazwę typu i gwiazdkę (*), czyli TC0_t* to wskaźnik na typ TC0_t (T jak timer, 0 - typ timera (w XMEGA masz...
Assemblera na ARM? Na AVR piszesz w ASM? Nie, czasami robię wstawki w przerwaniu, ale głównie sprawdzam co mi kompilator wypluł bo juz kilka razy miałem że program mi nie mnie chodził jak chciałem przez nadmierną optymalizację kompilatora. W ARM takich problemów nie ma. Wstawek ASM nie trzeba robić ani poprawiac kompilatora. Więcej ram, SPI, I2C, RAM,...
tmf dał byś radę wskazać gdzie jest zawarty przykład z ADC ? W przykładach, które pobrałem z helionu mam takie katalogi: ADV CDT DMA Event system FSM IR LED NVM OSC Porty IO Przerwania R02 R04 RTC Timery Usart Ale nie znalazłem nic o ADC
To prawda, ale stosując pewne triki można zmusić i zwykłe SPI do współpracy z DMA w trybie master. Nie zmienia to faktu, że remapowanie jest przydatne. XMEGA AU ma też timer typu 2 - czyli na każdym porcie 2 8-bitowe timery z 4 kanałami PWM, ma rozszerzone do 3 bitów HiRes i bardziej elastyczną możliwość wyprowadzania zegarów i event system na piny,...
ps. "programowaniem" zajmuję się dorywczo, gdy potrzebuję coś - tak najczęściej prostego i w miarę sprawnego dorobić. Nie mam więc sprawności w tym zakresie jak wypowiadający się koledzy .. Dodano po 6 (at) Freddie Chopin, o volatile nie zapomniałem , celowo stworzyłem najprostszy -osobny projekt :D aby ćwiczyć tylko same timery , mogę włączyć dowolny...
Temat nie jest za bardzo skomplikowany, jeśli ktoś mniej więcej kojarzy jak zbudowany jest sygnał composite i wyświetlany obraz. Popełniłem takie zabawki jako przykłady do książki, w sumie jest to dla XMEGA program składający się z jakiś 30 linii, przy OSD tak samo, nawet łatwiej bo nie trzeba generować synchronizacji tylko dosynchronizować się do impulsów...
Tak, dzięki temu, że rejestry obu kanałów DAC leżą obok siebie, można jednym rzutem przetransferować do nich dane podczas jednej transakcji. Ciekawe tylko, czy to celowe zamierzenie twórców Xmega, czy tak im niechcący wyszło, jak zastanawiałeś się w książce :) Dodano po 24 Zastanawiam się, czy nie użyć do tego HIRESa? Jeśli dobrze zrozumiałem jego działanie,...
Dla RGB zamiast 3 transmisji szeregowych zrób jedną równoległą - ot zwykłe zapisanie bajtu RGB na port. Jeśli masz XMEGA A1 z EBI to po prostu zapisujesz pod adres w external RAM, strob WR możesz wykorzystać jako sygnał zegarowy, a CS jako strob zapisu zatrzasku. Inne rozwiązanie - to event system + timery zliczające zdarzenia i generujące inne potrzebne...
Tak, tylko F4 to raczej procki trudne do wykorzystania przez hobbystów. Jak się kupi devkita to ok, ale samemu robić pod to płytkę? Ale nie o tym chciałem pisać. Wykorzystam twoją wiedzę o ARMach - bo może coś przeoczyłem, albo po prostu są te funkcje w innych rodzinach. To co mi brakuje - rejestr MUX umożliwia wybór jednej z alternatywnych funkcji...
Nie znam języków wysokiego poziomu - więc program jest w asemblerze, ale jeszcze raz powtarzam - nie przypisuję go sobie, ja go jedynie dostosowałem do moich potrzeb. Nie jestem programistą ale wydaje mi się że w zastosowaniach gdzie priorytetem jest określony czas obiegu pętli (np w falowniku) asembler się najlepiej sprawdzi, bo mamy kontrolę nad...
Wejście w przerwanie trwa co najmniej 15 taktów, czyli dla 48 MHz będzie to 0,3125 us (zapewne dłużej, bo FLASH będzie wymagał pewnie 1WS). I nagle się okaże, że mamy ten sam problem co w AVR - zaledwie kilka instrukcji do dyspozycji, zanim nie przekroczymy granicy 1 us. No dobra, niech nawet będzie 0.4us. Zostaje 0.6us, a więc jakieś 28 cykli - to...
Ile instrukcji zajmuje na AVR dodawanie dwóch zmiennych 16-bitowych umieszczonych w pamięci z zapisem wyniku do pamięci? A ile analogiczne mnożenie? Jak to wypada w porównaniu z ARM? Zgaduję, że w pierwszym przypadku jakieś 3..4 x więcej, w drugim - kilkadziesiąt razy więcej (czyli tyle razy wolniej). O programowej emulacji operacji zmiennopozycyjnych,...
Nie rozumiem, jakie są trudności w czytaniu manuala do STM32 ze zrozumieniem . Nie bierz tego do siebie, ale sporo ludzi pracuje z STM32, miliony projektów powstały z tymi prockami bez głupich bibliotek, więc ci ludzie jakoś zrozumieli treść z manuala, i zbudowali działające urządzenia... Przeważnie w ten sposób, że na prawym monitorze manual, na lewym...
Tak jak koledzy piszą - jeśli producent daje max 32 MHz to ma jakiś powód, gdyby układ działał np. na 50MHz to producent sam sobie by kagańca nie zakładał. Jeśli jednak chcesz ryzykować - wydaje się, że XMEGi z serii U (z USB) działają poprawnie do 48 MHz. Dlaczego? Bo taki zegar jest potrzebny do poprawnego działania USB i przynajmniej ten podsystem...
Dziękuję za znalezienie błędu. Oczywiście timery zachowują się tak jak piszesz w tym trybie. Cały problem wynika z tego, że w tym rozdziale błędnie jest napisane, że przykład jest z rozdziału 18 - powinien być z rozdziału 14, str. 272 - sterowanie jasnością wyświetlacza LED. Chodzi o to, że uzyskanie PWM wymaga programowej zmiany stanu wyjść związanych...
Ale, żeby się przyczepić - czy przed chwilą na uwagi kol. Kameczek dotyczące możliwości upakowania kodu w mniejszy i tańszy MCU, nie odpowiadaliście, że cena MCU w waszych projektach jest bez znaczenia? Bo stanowi ułamek ceny końcowej urządzenia i nie robicie milionowych serii? Czyżby jakaś niekonsekwencja? Ale to była tylko i wyłącznie odpowiedź na...
Chodzi o kontroler do robotyki. Ma byc maly, QFN lub TQFP. Wchodzi w rachube dowolny ARM. obliczeniowa wystarczylaby ATMEGA16Mhz ale nie mniej. Chodzi mi o rozwiazanie jednochipowe. istniejace uC sa bliskie idealu, ale kazdemu cos brakuje. Wymagania: -footprint max 16x16mm (TQFP100 pitch 0.5mm?) -power consumption raczej nie wiecej niz 250mA, normalnie...
Moim zdaniem różnice są ogromne. Nawet nie chodzi o peryferia jako takie, tylko konsekwencję w dostępie do nich. Wszystkie peryferia masz powielone na każdym porcie, każde jest obsługiwane tak samo. Rejestry opisujące peryferia masz pogrupowane w struktury, dzięki czemu możesz przekazać adres bazowy, a te same funkcje będą operować na dowolnym porcie...
AVRy, bo odnoszę wrażenie (być może mylne), że są najbardziej popularne, najprościej do nich znaleźć jakieś poradniki dla początkujących i są najłatwiej dostępne. Co do tracenia rozdzielczości PWM na ATmegach to po moich wstępnych wyliczeniach wychodzi na to, że i tak będę mógł sterować z dokładnością do dziesiętnych części stopnia co powinno w zupełności...
No i znowu. Zamiast suchej listy elementów można by przejść do listy zagadnień - atmega vs xmega i dwa zdania opisujące najbardziej fundamentalne różnice. Najbardziej fundamentalne dla typowego użytkownika to 3.3V zamiast 5, możliwość debugowania przez PDI bez zajmowania pinów na JTAG (więc jeśli dysponujemy programatorem z PDI można sobie JTAG odpuścić),...
To sprawdź czy sysclk_init(); albo procedury inicjalizacyjne USB nie wyłączają timerów w rejestrach redukcji poboru mocy PRP.
Żeby wywołane zostało przerwanie musisz jeszcze odblokować globalną flagę zezwolenia na przerwanie (sei()) i skonfigurować kontroler przerwań - odblokować przerwanie o najwyższym priorytecie.
Dorób obsługę przerwania (tak jak masz dla timera) albo go nie włączaj.
BlueDraco: gratuluję ci, że masz tak wspaniałych studentów. Albo wyrozumiałego Dziekana, który ci pozwoli oblać 90% roku :) Niemniej uwagi słuszne. taramis88: To wszystko co opisałeś robi się sprzętowo. Ponieważ impulsy dla serwa generuje timer, nie ma możliwości, żeby ci coś skakało. Do tego nie trzeba nawet kwarcu. Pozostałe elementy wygenerujesz...
4. Podłączenie sygnału z wyjścia PWM do ADC1 aby ponownie spróbkować sygnał PWM A po co? Po to aby odczytać ile kroków wykonał silnik. Sygnał PWM niski wysoki niski to jeden krok na wejście STEP. I chce żeby pwm był jakoś ogarniczony. Aby silnik wykonał na przykład 20 kroków - nie więcej. Na ATMega możesz to zrobić tak jak ci napisał kol. piotrva....
Nie, w XMEGA timer funkcjonuje trochę inaczej (lepiej). CTC uzyskasz wykorzystując rejestr PER timera do określania wartości TOP. CNT==PER powoduje zerowanie licznika i wygenerowanie przerwania overflow (opcjonalnie).
(at)Marek_Gorecki Przecież jeśli masz komparator i masz dostępne wejścia, a także wyjście (w każdym AVR, w tym w XMEGA, możesz przepiąć wyjście na pin IO MCU), to możesz ten komparator wykorzystać jako generator. Całkiem to ładnie działa, w dodatku komparatory w XMEGA są dosyć szybkie. Wyjście przez event system sobie routujesz na timer, a w E5 timer...
Sorki, pomieszałem wartości. W Xmega zegar dla timera pracował z 128 lub 256MHz, ale dla 12-bit timera uzyskałem częstotliwości PWM 16 i 32KHz. Na pewno na STM32 są także podobne timery. Co do Xmega, to nie jestem jakimś jej fanem, ale swego czasu sporo się nią bawiłem i w sporym stopniu ją poznałem, dlatego teraz biorąc się za STM32 mam jakieś porównanie.
Nie da się. Skoro timer dzieli częstotliwość, to jak masz np. /10 i /11 to różnica niewielka, ale już /3 i /2 to różnica ogromna i zawsze tak będzie. Można to kompensować odcinkowo zmieniając częstotliwość taktowania timera, wprowadzać generatory frakcyjne, PLL itd. Tyle, że nie zrobisz tego w ATMega128, bo tam masz do dyspozycji tylko prosty preskaler....
XMEGA ma podsystem nazywany AWeX (WeX w E5), który dystrybuuje sygnały zegarowe generowane przez timer na wyjścia portu, wprowadzając ustalane programowo czasy martwe. Dzięki temu XMEGA może sprzętowo sterować silnikami krokowymi i BLDC (zasadniczo też krokowymi) - sekwencja komutacji też może być sprzętowo ładowana do AWeX, dzięki temu sterowanie nie...
Da się to zrobić, ale efektem ubocznym będzie zmiana rozdzielczości PWM, gdyż zmianę taktowania timera możesz dokonać jedynie przez preskaler, czyli nie jest to zbyt elastyczne narzędzie. W XMEGA timer może być taktowany np. z innego timera, który w tym przypadku robi jako elastyczny preskaler, w efekcie łatwiej jest zmienić częstotliwość odtwarzania...
Owszem, wykorzystać AVR z rodziny XMEGA - tam timer jest o wiele bardziej elastyczny, można go też taktować z innego timera, w efekcie uzystać dowolny preskaler zegara. W ATMega 64 timer też może mieć zewnętrzny zegar, możesz więc zewnętrznie połączyć wyjście jednego timera, który będzie preskalerem z wejściem zegarowym innego timera. CLK/2 w ten sposób...
Xmega serii A i AU mają 3 enkodery na pokładzie, można je użyć jednocześnie - praktycznie, z tym że każdy enkoder wymaga osobnego timera (nieistotne jest czy typu TC0 czy TC1 itd). Co do programu, timer musi być odpowiednio skonfigurowany i włączony. Dlaczego konfigurujesz jedynie rejestr TC0.CTRLD? W konfiguracji portów dodaj: "| PORT_OPC_PULLUP_gc"...
W XMEGA łaczysz timer z wybranym wejściem poprzez event system. EV możesz wykorzystać do wyzwolenia timera - zobacz w opisie timera polecenia jakie obsługuje. Jesli jednak chcesz mierzyć okres pomiędzy impusami to prościej ustawić timer w tryb mierzenia okresu i przez EV doprowadzić mierzony sygnał. Z kolei jeśli chcesz liczyć liczbe impusów, to po...
Jeśli chodzi o wybór podyktowany zwiększeniem ilości pinów to czemu nie ? ATmega64 to dobry wybór. Masz dodatkowo jeszcze jeden Timer 16-bitowy ;) .... a jeśli chodzi o przeniesienie kodu to żadna różnica i to jest fajne w porównaniu do przesiadania się zaraz na Xmega. Poza tym są jeszcze takie jakby nieco większe wersje procków z serii ATmega2560/2561...
Pomogło :) dziękuję za pomoc. Można też pomyśleć o ustawieniu rejestru PER timera. Racja, ustawie rejestr PER taki sam jak dla diody LED. Ciekawi mnie dlaczego na stronach z poradnikami do rodziny xmega taktują ten timer z systemu zdarzeń ...
(at)kamil94goldman Jeśli to do sterowania PWM to możesz użyć AC w połączeniu z timerem. Timer na wyjściu daje 1 włączający klucz, prąd rośnie, włącza komparator, który przez event system wysyła polecenie zerowania timera, co wyłącza klucz do momentu, aż prąd spadnie poniżej progu zadziałania timera. Nie wiem czy event od AC jest generowany w sposób...
BlueDraco - taktowanie timera nie jest problemem, nawet w XMEGA może to być 256 MHz, ba, nawet w zwykłym ATTiny może być to w granicach 100 MHz. Problemem jest to, że wejście jest synchroniczne i procesor musi mieć możliwość samplowania wejścia z tak dużą częstotliwością. Stąd też taktowanie IO musi być wysokie, a to pociąga konieczność albo pracy...
W XMEGA poszczególne peryferia procesora mogą być taktowane różnymi zegarami. Rdzeń procesora chodzi max na 32MHz, ale niektóre układy mogą działać nawet na 128MHz (np. timery). A nawet lepiej, bo w nowszych XMEGA można wykorzystywać oba zbocza zegara timera, co daje efektywne taktowanie timera równe 256 MHz!
integra timery atmega8 timery timery mikrokontrolera
zegar kuchenka mastercook uszkodzić sterownik mercedes pralka melodyjki
DeLonghi Magnifica - Ciągłe świecenie diody alarmowej Sterowniki Generic Monitor - funkcje i zastosowanie