Generalnie należy pin pracujący jako PWM ustawić jako wyjście, powinno się też ustawić jego domyślny stan, który obowiązuje w chwili zatrzymania/resetu timera. Oprócz tego należy odblokować w timerze odpowedni kanał CCx. Co do pracy jednocześnie w trybie capture i compare to jest to możliwe, ale tylko w XMEGA E5.
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, ż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.
Witam, W przypadku XMEGA32E5 i timerówTC45 znacznik przerwania od Overflow/Underflow nie jest automatycznie kasowany po wejściu do obsługi przerwania. Należy go skasować programowo poprzez wpisanie "1" do bitu OVFIF w rejestrze INTFLAGS w obsłudze przerwania. U Ciebie występuje dokładnie efekt braku kasowania znacznika. Pierwszy okres jest poprawny,...
Ż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.
Zwykle z kanałami DMA jest tak, że jeśli urządzenie zgłosiło żądanie DMA, to będzie ono utrzymane tak długo, aż kanał DMA odczyta wartość z tego urządzenia. Przykładowo jeśli ADC uzyska próbkę, zgłosi żądanie do DMA, ale jak tylko DMA odczyta tą próbkę, żądanie zostanie zwolnione. Podobnie może być w przypadku timera: zdarzenie-żądanie-odczyt-potwierdzenie.....
Dorób obsługę przerwania (tak jak masz dla timera) albo go nie włączaj.
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).
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....
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...
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.
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...
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...
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ń ...
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...
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...
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...
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 :)
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...
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!
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....
(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...
Timer w XMEGA ma specjalny tryb QDEC, w którym działa jak dekoder enkodera. Także jest to robione całkowicie sprzętowo i nie ma tu żadnych analogii do ATMega.
To sprawdź czy sysclk_init(); albo procedury inicjalizacyjne USB nie wyłączają timerów w rejestrach redukcji poboru mocy PRP.
Lepsza opcja to timery programowe https://github.com/adamdunkels/uip/blob/...
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...
Powiedzmy, że wyjście TxD UART chcę zmodulować przebiegiem z timera? W XMEGA to proste, jak to zrobić w ARM? Możesz z czystej ciekawości podać cel takiego zabiegu? Bo zastanawiam się do czego można wykorzystać takie działanie.
To zależy jakiej XMEGA używasz - niektóre mają timer z trybem one shot (E5) i wtedy sprawa jest prosta - timer zaczyna zliczanie po wyzwoleniu. Inne mają możliwość obsługi komend - np. restart, można dzięki temu zrealizować funklcjonalność one shot. Tego typu przykłady znajdziesz w książce "AVR. Układy peryferyjne" - zobacz na przykłady generowania...
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"...
Tak, trzeba korzystać z eventów - timer/counter jako wejście ma tylko system clock po preskalerze albo kanały event, ale jaki problem, wszystko jest opisane w: http://www.atmel.com/Images/doc8045.pdf
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;....
Jeżeli przez DMA, które działa w sposób niedeterministyczny z powodu konkurencji z innymi peryferiami i CPU o dostęp do pamięci i magistral ładujesz coś gdziekolwiek to będziesz miał taki jitter, że głowa boli. Od tego masz zbuforowane rejestry, np. w przypadku timera i XMEGA PERBUF, potem tylko wyzwalasz eventem uaktualnienie timera lub czekasz na...
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...
No ba, taki przebieg da się też wygenerować zwykłym AVR (XMega), który może popędzać timery z zegarem 128MHz. Można go też wygenerować banalnie za pomocą 3 bramek AND/NAND, czy co tam pasuje, ale żeby zareaz CPLD? BTW, jak już autor pisze co go wkurza to ja też dodam co mnie denerwuje - ludzie, którzy zamiast powiedzieć zrobiłem głupotę, wybaczcie,...
Pod ten drugi procek podpięte jest wyjście USART z XMEGA, dzięki czemu masz je widoczne w systemie jako wirtualny port szeregowy. W ten sposób możesz łatwo komunikować się z XMEGA za pomocą USART. Co do zmiany bitów portów IO - w XMEGA masz rejestry SET, CLR i TGL związane z portem, jeden ustawia bity, drugi kasuje, a trzeci zmienia na przeciwne. Dzięki...
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...
No to wtedy zmień sposób wyzwalania ADC, np. na wyzwalanie zdarzeniem timera.
Obsłuży przy 16 MHz i programowaniu w asemblerze lub wstawkach i NAKED. Czyli - jak się dobrze nagmnastykujemy, to może uda nam się uzyskać to samo, co na każdym Cortexie mamy bez asemblera, bez problemów i taniej, z dużym zapasem mocy obliczeniowej. Ponadto ATmega jeśli obsłuży te 260 k przerwań UART czy SPI, to nie może obsłużyć żadnego innego przerwania,...
Programowe generowanie sygnału video w jakimkolwiek standardzie jest zadaniem krytycznym czasowo, dlatego bez asemblera niewiele zwojujesz. Nawet w asemblerze trudno uzyskać więcej niż 100 punktów w linii. Zresztą zerknij na: Rejestrator przebiegów cyfrowych - przystawka do TV z EP Rejestrator przebiegów analogowych - przystawka do TV z EP Nie jest...
A dlaczego miałaby się nie palić skoro robisz to samo, tylko w bardziej dziwaczny sposób? Zajrzałeś do przykładów o których mówiłem? W przerwaniu timera masz badać stan wyjść A i B enkodera i dekodować ten stan z kodu Graya. Dodatkowo ciągle musisz zrobić wykrywanie zbocza. Co do timera to dopiero XMEGA ma sprzętowy dekoder kwadraturowy, zwykłe AVRy...
Jakaś prosta XMEGA (np. E5), która ma timer z opcją enkodera kwadraturowego (czyli obsługa sprzętowa enkoderów), do tego ma DAC, z którego wyjście dajesz na opamp sterujący napięciem. Oczywiscie można zastosować dowolny mikrokontroler, gdyż enkoder można obsługiwać softwarowo, a DAC można zastąpić PWMem + filtr dolnoprzepustowy RC. Pytanie co potrafisz...
Łatwiej by było gdybyś napisał co ci nie działa i czego się spodziewasz. Ale przypuszczam, że chodzi o to, że konwercja DAC wyzwalana jest z EVCH0, na którym eventy są z preskalera zegara, zamiast zdarzeń overflow timera?
A nawet każdego nowszego procka :) W sumie do sterowania BLDC potrzebny jest timer, przydaje się multiplexer (XMEGA ma AWEX, ale bez tego też się da) i komparator z multipleksowaniem wejść analogowych (każdy AVR to ma, podobnie jak znakomita większość innych MCU) - jeśli robimy detekcję w oparciu o BEMF. Żadna filozofia wygenerować 3 fazy przesunięte...
(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...
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,...
1) Tak, zmieniając taktowanie timera zmieniają się także liczby, które należy wpisać do jego rejestrów. 2) każdy timer ma kilka kanałów PWM i skojarzone z nimi rejestry. Konfigurujesz wyłącznie wartość określającą wypełnienie, konfigurację samego timera już masz. Co do tych 6 PWM - zauważ, że drugi timer, któym dysponujesz jest tylko 8-bitowy i w zależności...
Tak, dobrze kombinujesz. System zdarzeń tu ci wiele nie ułatwi - te triggery też są sprzętowe, nie ma więc wielkiego sensu angażować kolejny zasób sprzętowy. Potencjalnym ułatwieniem może być tylko eliminacja timera - o ile któryś z wbudowanych w ADC preskalerów da ci pożądaną częstotliwość próbkowania.
Ja osobiście jestem przeciwnikiem nadużywania makr, czasmai są przydatne, ale jak pisał (at)gaskoin specyficzne hardwarowo fragmenty kodu lepiej przenieść do oddzielnego pliku i stworzyć coś na wzór prostego HAL. O ile makra jeszcze mogą się przydać np. do zmian stanu pinów IO, czy operacji, które w kodzie wykonywane są często, o tyle wydaje mi się,...
Rozwiązanie pierwsze jest bez sensu, bo po co ci przerwanie ustawiające flagę, która jest ustawiana sprzętowo (OVF)? Rozwiązanie drugie jest ok, aczkolwiek zamiast sei w przerwaniu lepiej zastosować ISR_NOBLOCK. Oczywiście to zadziała tylko pod warunkiem, że czas wykonywania obliczeń jest krótszy niż odstęp pomiędzy przerwaniami OVF. W przeciwnym przypadku...
Ok ale powinien działać b6 a nie działa, dwa w właściwym kodzie jtag był wyłączony zresztą sekwencją z twojej książki :) więc to nie to. Tu mam inny kod który napisałem na sam komparator B Dodano po 4 A tu kod pierwotny, komparatory synchronizują liczniki resetując je, teraz zrobiłem to bez komparatorów ale pierwotny plan miałem z nimi. Wyłączenie jtaga...
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
(at)pjasinski91 Alternatywą do rozwiązania proponowanego przez kol. (at)dondu jest użycie XMEGA32E5 - tańsza, a ma moduł XCL - programowalnej logiki, który umożliwia programowe stworzenie glue logic, np. do wyzwalania timera. Można to też w każdej XMEGA zrobić przy pomocy systemu zdarzeń.
I sobie nie poradzisz, bo ten typ tak ma, można zmienić tryb generowania PWM i wtedy nie będziesz miał 100% wypełnienia, ale za to będzie 0%. Potrzebujesz mieć bez szpilek - skorzystaj z XMEGA - to tańszy niż ATMega644 AVR i ma bardziej elastyczny timer.
Każdy klawisz joya masz podłaczony od osobnego portu czy osobnego pinu w jednym porcie? Jeżeli idzie o 32 MHz , spróbuj podkręcić go o ile warunki projektu pozwalają. Nie sprawdziłem zapisu eepromu ale timery, uart działały do 55Mhz (5 x 11.0592 Mhz) przy standardowym zasilaniu 3.3V. Jutro przetestuję eeprom po przetaktowaniu. Wracając do tematu, jeśli...
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...
Dlatego, że podczas symulacji Atmel Studio symuluje procesor, w efekcie wie ile wykonał instrukcji i jakich - program jest wykonywany instrukcja po instrukcji, nawet jeśli dajesz mu run. W trybie debugowania sprzętowego pomiędzy pułapkami sprzętowymi może minąć dowolna liczba, dowolnych instrukcji. W efekcie nie ma jak ich policzyć i cycle counter nie...
Ok, ale jakbym chciał wygenerować impuls to mam po ustawić stan danego pinu na wysoki? Jeżeli generujesz impuls za pomocą timera sprzętowo, to jak ustawisz wyjście jest bez znaczenia - timer przejmuje kontrolę nad pinem (piszę o starych AVR, inaczej jest w XMEGA i może być w nowych AVR, trzeba sprawdzić w dokumentacji).
DMA to kolejny wielki temat. Udało się zrobić kiedyś na Xmega generowanie przebiegów poprzez zmianę okresu liczenia timera wyzwalającego kolejne transakcje DMA. Generował mi wtedy piękne przebiegi, gdyż była czytana cała tablica element po elemencie. Do generatora akustycznego (np. do badania wzmacniaczy i torów audio) by się nadawało, ale do syntezatora...
Niestety nie będzie działać, jeśli nie zastosujesz w tym przypadku sprzętowego (filtr RC) debouncingu. Pytanie, czy to musi być całkowicie sprzętowo? Jeśli tak to tylko zewnętrzny filtr RC + podłączenie pod wejście XCK timera, wtedy każde naciśnięcie przycisku generuje impuls zegarowy zliczany przez timer. Całkowicie sprzętowa realizacja prostsza jest...
Wszystko wskazuje na to, że się uda. Są dwa timery typu 5, TCC5 i TCD5, oba mają QDEC capability. TCC4 dam na przerwania wewnętrzne od przepełnienia, a dwa przerwania zewnętrzne INT0 i INT1 nie potrzebują timera, ani nawet systemu zdarzeń. Program się kompiluje, więc jest szansa, jednak wszystko okaże się w praniu za kilka dni, kiedy będę uruchamiał...
I tutaj nie chodzi że Xmega coś ma bo Xmega to nie Tiny Zupełnie niezrozumiałeś. Tu nie chodzi o to, że Xmega coś ma. A o to, że w zasadzie wszystko czym się szczyci Tiny 1 series i Mega 0 series pochodzi właśnie od Atxmega, a nie od PIC!!!!!!!! CCL Tiny wywodzi się z XCL Atxmega32E5, otwórz DSy porównaj z CLC z np. PIC18F24K42 i wszystko będzie jasne....
Tryb CTC w XMEGA dostępny jest zawsze - rolę wartości top z ATMegi spełnia rejestr PER określający maksymalną wartość do której zlicza licznik.
Mam już użyty TCC0, czy dodatek jeszcze jednego timera nie obciąży programu? Chyba, że ten dodatkowy timer będzie sprzętowo "trigował" eventa? Nie bardzo jednak wiem jak to wszystko poskładać do kupy?
Tylko określ jeszcze rozdzielczość PWM, bo M88 ma timer 16 bitowy oraz dwa 8-bitowe, co łącznie daje tylko 6 kanałów PWM. 11 16-bitowych kanałów PWM masz w XMEGA i być może większych ATMegach.
A AVRach oprócz nowej serii Xmega nie ma priorytetów przerwań. Obsługa przerwania blokuje wszystkie przerwania. Rozwiązaniem jest timer. Nie zwykłem wykorzystywać przerwań zewnętrznych do przycisków. Lepiej wykorzystać timer. Sprawdzając co np 100ms ich stan. 2x wykrycie kolejno mamy akcję. Dodatkowo w ten sposób łatwo zrealizować inna funkcje przycisku...
Właśnie do tego służy power reduction register PR.XXX. Testowałem wyłączenie wszystkich modułów, łacznie z timerami, czyli PR.PRPC = 0x5F; Daje to właśnie pobór rzędu 500uA przy 3.3V i 2MHz internal clock.
Nie. Jest jak w stm32. Uklad uart, timer czy twi można podłączyć do domyślnych lub alternatywnych pinów. I ot cały remap.
Można mnożyć razy 8 i to zwykle wystarcza :) Raz miałem potrzebę zliczać SCK, dla prostego wyliczenia wydajności transferu danych - nie chciałem, aby dodatkowe instrukcje zliczające bajty miały wpływ na wynik. W tym celu można podać SCK na wejście taktujące timera. To chyba jedyna opcja w ATMega. W XMEGA jest o tyle łatwiej, że stosowne połączenie można...
Ja bym tak zrobił że początkowa wartość to DACBx = np 50 czy coś. Tu pliki, karta na porcie E, w pliku MMC-XMEGA trzeba przestawić pinologię na swój port MMC. Słychać jakby schody, brumienie. Nie wiem jak to wyeliminować. Zmiany przerwy między ładowaniem nic nie dają. Niestety na razie zamiast timera co 22Khz jest waitus, ale jak zmieniam wartość tej...
Popatrz na enable cycle time - 1200 ns, czyli wieczność. Obsługę tego wyświetlacza na szybkim MCU należy oprzeć np. o przerwania. Czyli w przerwaniach timera, wywoywanych co odpowiedni czas - max co 1200ns dokonujesz zapisu, jeśli masz coś do zapisania i kończysz przerwanie. Dzięki temu procesor ma szansę w międzyczasie zrobić cos sensownnego, a nie...
Podepnij linię R/-W LCD na stałe do masy, nie testuj bitu gotowości LCD (bo i tak nie ma to sensu), zrób obsługę LCD na przerwaniu timera i możesz spokojnie podpiąć 5-woltowy LCD pod uC zasilany z 3.3 V.
Ale co? Uzyskanie zegara na poziomie kilkunastu GHz? Tego nie uzyskasz w żadnym standardowym scalaku. Za pomocą PLL i myków z timerami uzyskasz F dla timera równe 128 MHz, z opcją taktowania na dwóch zboczach uzyskasz efektywnie 256 MHz. To i tak sporo.
Weź pod uwagę, że przy 100 kHz i taktowaniu ATMega128 równym 16 MHz, na jeden okres sygnałju badanego przypada zaledwie 160 taktów zegara. A więc rozdzielczość z jaką będziesz mierzył sygnał jest mocno ograniczona. Oczywiście jeśli interesuje cię pomiar szerokości impulsów. Druga sprawa - w jaki sposób planujecie wysyłać po RS te dane? Bo jeśli masz...
można wziąć większy procek, np. ze stajni AVR XMEGA. Raz, że masz procek o 1/3 szybszy, to jeszcze możesz zrobić synchroniczny USART z wykorzystaniem DMA, co praktycznie zapewni brak obciążenia obu procków. Pamięć dwuportowa to raczej ciekawostka :) Jak już xmega, to chyba można jeszcze lepiej. Połączyć PORT<->PORT i w "Masterze" uruchomić Timer...
Witam , czy można prosić o prostą składnie oraz konfiguracje pinu w baskomie do wybudzenia atxmega32a4u . Przygodę z xmegami dopiero zaczynam , na timerach pracowało ale chodzi o wybudzenie pinem z IDLE lub POWERSAVE , dziękuje za pomoc i pozdrawiam
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...
W poprzednim (niedokończonym niestety) projekcie na Xmega, korzystałem z Fat Fs, opóźnienie do tej biblioteki programowe, przerwań miałem chyba 6, działało bez problemu. Timer, owszem. Ale jeśli zależy mi na dokładności a nie tylko na opóźnieniu, które nie ma jakichś rygorystycznych wymagań co do długości trwania. Szkoda Timera, przydać się może na...
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,...
Takie porównania na trywialnych programach są nic niewarte. Tym bardziej, że początkowy koszt może później z łatwością się zrekomensować, dzięki np. korzystaniu z funkcji wyższego poziomu. Jak bezsensowne są takie porównania, albo raczej jak należy uważać z ich interpretacją pokazuje prosty przykład. Skompilowałem sobie dwa identyczne programy, wykorzystują...
W sumie za dużo nie mogę napisać, bo to projekt komercyjny, za który ktoś wyłożył niemałe pieniądze. Ale podpowiedzieć mogę, że zamiast łączenia funkcji alternatywnych jak w Xmega, w F303 (nie kojarzę czy w innych też, bo dotąd mnie to nie interesowało) timer ma możliwość robienia na wyjściu OR lub AND swoich dwóch kanałów ;-) No i wiadomo, zmyślne...
Mikrokontrolery AVR firmy Atmel zdobyły bardzo dużą popularność na polskim rynku. Dotychczas producent oferował nam dwie rodziny: ATtiny oraz ATmega, które różniły się możliwościami i ceną, choć sposób ich programowania był identyczny. Wprowadzając najnowszą rodzinę, XMEGA, producent dokonał bardzo istotnych zmian, zarówno w budowie procesora, a także...
W sensie próbkowania na przerwaniu od timera aby pozbyć się drgania styków, czy podłaczyć do sprzętowego licznika (co raczej w AVR Arduino nie pyknie)? To pierwsze. Aczkolwiek w tym przypadku nie mamy drgań, więc jest ok. Sprzętowy licznik byłby ok, o ile ma enkoder kwadraturowy. W XMEGA to jest, więc tam można zrobić całość sprzętowo.
Komparatory jako peryferia analogowe są podłączone pod porty A i B mikrokontrolera - wejścia wybierasz multiplekserem komparatora. Oczywiście sygnał indeksu Z możesz wykorzystać - konfigurujesz wtedy timer w trybie dekodera kwadraturowego z indeksem. Przykłady takiej konfiguracji masz w przykładach do mojej książki o XMEGA - ściągniesz je z linku w...
Zmieniłem - niestety, nie pomogło :( p.s. biblioteka nawet w oryginale przy kompilacji wywala błąd... Dodano po 3 Mam ochotę się poddać i kupić płytkę z ATmega... W sieci jest worek przykładów i wszystko działa - przy zmianie na Xmega zaczynają się problemy, spowodowane moją znikomą wiedzą. Trochę mi szkoda dwóch miesięcy owocnej nauki i potencjału...
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...
Ograniczeń sprzętu się nie pzeskoczy. Tylko jak już robić to programowo to można dla wszystkich trzech serw, kod taki sam, a zostaje jeden timer więcej. Ale powstaje problem pod postacią jitteru wejścia w przerwanie, jeśli mikrokontroler wykorzystuje jeszcze inne przerwania. Ponieważ ATMega ma jednopoziomowy system przerwań zrobi się bałagan. A może...
Nie wiem czy to jest w ogóle możliwe bo fprint musi mieć zdefiniowaną funkcję wysyłającą tekst po jednym znaku. Definiujesz pośredni bufor i do niego ładujesz pojedyncze znaki. Funkcja umieszczająca znaki powinna sprawdzać poziom zapełnienia bufora i uruchamiać/resetować timer. Jeśli bufor zacznie się zapełniać lub nastąpi timeout, bufor powinien zostać...
Co do rozdzielczości temperatury 0.1st jest to wykonalne jednak nie na popularnych czujnikach bo ich błąd pomiarowy to ok 0.5st. Rozdzielczość a dokładność to dwie różne sprawy. Kolega pożąda rozdzielczości 0,1 stopnia, co jest możliwe do osiągnięcia i na LM35 i na DS18B20. Dokładności lepszej niż 0,5 stopnia tymi czujnikami nie osiągnie, chyba, że...
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...
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...
Witam. Na wstępie chciałbym zaznaczyć, że jestem kompletnym nowicjuszem jeśli chodzi o mikrokontrolery, więc proszę o wyrozumiałość. Chcę wykonać model Jeśli myślałeś o ATMEGA8 to znaczy, że interesują cię AVRy? Można wziąć coś innego z serii ATMega, dzięki czemu będziesz miał więcej kanałów PWM. Lecz timery w ATMega są dosyć niewygodne (sztywny preskaler)...
Wkrótce najwyraźniej pojawi się nowa rodzina mikrokontrolerów Microchipa - następców XMEGA? Póki co jest już wsparcie w MPLab i Atmel Studio, czyli po plikach nagłówkowych można się zorientować jakie będą możliwości tych układów. Oznaczenia AVR128DA64 - pierwsza liczba to wielkość FLASH, druga to liczba pinów (28, 32, 48 lub 64), 16 kB SRAM. Co mają:...
"Nowe" czyli od Xmega i nowsze AVR mają mozliwość priorytetu przerwania. Poprzednie miały ustalony. Nie wiem jaki to AVR, ale jeśli ustawisz Timer i przerwanie od niego to jak będzie w przerwaniu to oczywiście zauważy potem flagę przerwania z USART, ale może być za późno, dlatego jeśli nie trzeba, to się przerwań od wszystkiego nie uruchamia. Rzadko...
Witam, chodzi mi o to że przy konfiguracji timera jak poniżej, wyjście pwm pojawia się na pinie PD4 mikrokontrolera atxmega32e5 a powinno chyba być na pinie PD0? [syntax=csharp]TCD5.CTRLB = TC45_WGMODE_SINGLESLOPE_gc; //TRYB SINGLE-SLOPE TCD5.CTRLE = TC45_CCAMODE_COMP_gc; //WYBÓR KANAŁU A TCD5.PER = 512; //WARTOŚC TOP TCD5.CCA = 0; //POCZATKOWA WARTOSC...
Nie wiem dlaczego uważasz, że do sterowania srokowcem nie stosuje się mostka H? Zapewne masz silnik unipolarny, ale to nie jedyny typ jaki istnieje. Co do częstotliwości, żeby była jasność - na step/dir nie masz chyba 25 kHz? Zresztą nawet jakby, to dla M8, masz 16MHz/25kHz=640 taktów na okres, co jest aż nadto. Czyli program do kitu. Napisz co ten...
Też o tym pisałem - robię odtwarzacz mp3, bez koprocesora mp3 ani w przypadku AVRa, ani w przypadku ARMa w rozsądnej obudowie się nie obejdzie. W czasach ARM7 mówiło się że kodek mp3 wymaga zegara 20MHz. Na Cortex-M3 z zegarem 24MHz zadziała więc bez problemu (i bez dodatkowych układów czy koprocesora). Mnie np. bardzo pasuje event system z XMEGA,...
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...
Synchronizacji nie trzeba zapisywać w pamięci - to generują timery. Zobacz przykłady do moich książek, masz tam przykład jak coś takiego zrobić na XMEGA. DMA służy tylko do adresacji kolejnych komórek pamięci i ich wystawiania na IO. Do tego potrzebny jest jeszcze latch, bo dane muszą trafiać na DAC w ściśle określonych momentach, a DMA w żadnym procesorze...
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,...
integra timery atmega8 timery bascom timery
chiński pilarek spalinowy sygnał mikrofonu dynamicznego taśma touchpad naprawa
hulajnogi elektryczne problemy zelmer regulator obrotów
Jak odkleić ramkę od LCD w Samsung A13? Toshiba 40L3433DGB Firmware Download Guide