(at)Marek_Gorecki Odnoścnie ARM info o czasie reakcji na przerwania znajdziesz tutaj: http://infocenter.arm.com/help/index.jsp... Funkcje: EXTI_GetITStatus EXTI_ClearITPendingBit są specyficzne dla STM32 ponieważ wiele źródeł jest podłączonych do jednego wektora przerwania. Czas reakcji na przerwanie będzie sumą cykli...
(at)niveasoft To nie ten przypadek. Wyjaśnienie tej zagadki jest raczej proste - flaga przerwania jest kasowana, ale zwieranie mechaniczne powoduje bouncing, więc zgłaszanych jest więcej niż jedno przerwanie. Samo wyłączenie przerwania nie wpływa na odpowiednią flagę, więc przy kolejnym drganiu jest ona ustawiana, ale przerwanie nie jest obsługiwane...
cli i sei zmienią globalną flagę przerwań, blokując lub odblokowując wszystkie. Na to nakładają się priorytety przerwań kontrolera przewań i na końcu masz przerwania z danego modułu. Kolejne możesz zablokować tak jak masz, wpisując blokadę do PINCTRL lub w rejestrze kontrolnym przerwań dla danego peryferium (w tym przypadku PORT). Normalnie RETI na...
Po pierwsze enkoder możesz obsługiwać sprzętowo na XMEGA - w tym celu konfigurujesz event system na QDEC, a dowolny timer będzie ci zliczał impulsy i pracował jako enkoder. Co do transmisji USART - można paczki odbierać przez DMA, co jest wygodne, można to zrobić w oparciu o przerwania. W tym celu odblokowujesz przerwanie RXComplete sygnalizujące gotowy...
Hej, może przerwanie SPI?
A propos przerwań - widzę, że masz tam jakieś przerwanie od pinu (funkcja Initialize_INTERRUPT_For_nRF) - pamiętaj, że w XMEGA kontroler przerwań jest wielopoziomowy, tak więc, oprócz odblokowania danego przerwania musisz określić jego poziom (LO, MED, HI), a także odblokować przerwania danego poziomu w kontrolerze przerwań oraz globalną flagę zezwolenia...
Nie, tego z obsługi enkodera. Jak sądę przejściu 0->top i top->0 towarzyszy przerwanie nadmiaru. Ew. można wykorzystać przerwanie compare z kanałów A-D.
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,...
Owszem, przerwanie wyzwoli, ale najpierw należy rozpocząć konwersję. Ty robisz to tylko raz, przy inicjalizacji ADC, po pierwszym przetworzeniu już nic nie wyzwala kolejnego.
Jeśli dobrze rozumiem, chcesz by przerwanie pochodzące od komparatora wywołało szybką reakcję ( np. odcięcie zasilania czy ograniczenie prądu do zewnętrznego, sterowanego obwodu ), czy tak ? Więc wybierasz przerwanie zboczem narastającym, w obsłudze przerwania ustawiasz flagę i.. tyle. Resztę realizujesz za pomocą tej flagi. Resetować ta flagę możesz...
Priorytety są jak osobne grupy przerwań odnośnie załączania. Chcesz mieć hi_level musisz załączyć hi_level. Ich relacja wystepuje wtedy gdy obsługując przerwanie low_level dostajesz przerwanie med_level lub hi_level, to lo_level zostaje wstrzymane na czas realizacji med_level lub hi_level.
Tak, XMEGA chodzi max do 3,6 V, niemniej dzięki DMA można pobrać stan portu w ciągu 1-4 taktów, co dla zegara 32 MHz przekłada się na mniej niż 160 ns, w dodatku całkowicie sprzętowo, bez udziału MCU.
Mam jednak wciąż pytanie co do drugiej części, jeżeli zmienna jest volatile to dlaczego konieczne jest wyłączanie obsługi przerwań? Czy wynika to z tego, że to 4-bajtowy typ long i przerwanie może nastąpić w trakcie porównywania i zmienić wartość niesprawdzonych jeszcze bajtów? Dokładnie o to chodzi. Tu lepsze sa 32 bitowe procki, przy porównaniu long...
O ile dorze rozumiem idee tego przerwania (nie miałem okazji wykorzystać go w praktyce) to określona zmiana na którymkolwiek pinie z grupy wywołuje przerwanie... i teraz myślałem, żeby za pomocą prostych warunków zliczać, który wywołał i ile w danym czasie. Problem widzę w momencie, gdy przykładowo czujnik A wywoła przerwanie w bardzo krótkim czasie...
Zmienne globalne zajmują...... Pewnie ram dla led jest rezerwowany w chwili uruchomienia biblioteki przez memalloc. Gdybyś sam pisał obsługę led to użyłbyś tablicy o określonym rozmiarze dzięki czemu wiedziałbyś ile ram zajmuje program. Poszukaj jak wyświetlić ilość wolnej pamięci ram w czasie działania programu. Jakiś freemem jest. Trochę oszuka ale...
...Czy SPI działa "niezależnie" tzn do rejestru wpisujemy wartości i SPI samo działa sobie z boku... Dokładnie tak; nie wysyłasz bitów 'ręcznie'. Jeżeli włączysz SPI, to zapisanie bajtu danych do rejestru automatycznie rozpoczyna transmisję i równolegle odbiór 8 bitów. Po zakończeniu operacji zostanie ustawiona flaga/flagi przerwania, a samo przerwanie...
Mam problem z ogarnięciem kodu, który ma wykonywać obsługę przerwania po przepełnieniu timer'a. Sam licznik działa i po osiągnięciu wartości TCC0_PER ustawiana jest flaga przepełnienia, ale program nie chce wykonać obsługę przerwania. Szukałem w sieci, ale nie znalazłem nic co rozwiązało by ten problem. Będę wdzięczny za pomoc [syntax=c]sei(); //włączenie...
http://obrazki.elektroda.pl/6914408400_1... http://obrazki.elektroda.pl/8024236400_1... ATxmegi to łakomy kąsek dla kogoś, kto już poznał "stare" AVRki - zwiększona szybkość (32MHz!), o wiele więcej peryferiów (5 UARTów! 16 kanałów PWM!), modularna budowa i można używać tych samych dobrze znanych narzędzi. Ale potem...
Cześć Czy może ktoś mi podpowiedzieć, jak generować przerwanie od zmiany sygnału na lini SS? Obecnie próbuję to zrobić dodając przerwanie na PIN4 portu C [syntax=c] PORTC.INT1MASK=PIN4_bm; PORTC.INTCTRL= PORT_INT1LVL_LO_gc| PORT_ISC_BOTHEDGES_gc; PMIC.CTRL = PMIC_LOLVLEN_bm; [/syntax] oraz przerwanie [syntax=c]ISR(PORTC_INT1_vect) { nr_bajtu=0; }[/syntax]...
Witam. Mam problem z kodem programu. Do pinu F5 XMegi128A3U mam podpięty przycisk wywołujący przerwanie INT0. O tak: http://obrazki.elektroda.pl/6613783300_1... Kod włączający i konfigurujący przerwanie: http://obrazki.elektroda.pl/8557297900_1... PORT_ISC_LEVEL_gc używam ze względu na to, że domyślnym stanem przycisku...
Witam. Buduję kolejny oscyloskop, z pewnych względów kodu pokazać nie mogę więc postaram się opisać problem jak najlepiej. Otóż, przy pomiarach bardzo małych sygnałów (o amplitudzie ok 150 mV) zauważam zakłócenia. Sygnał pochodzi z generatora funkcji zaimplementowanego również w tym urządzeniu. No nic dziwnego, zakłócenia jak zakłócenia, sygnał jest...
Witam Was, Podłączyłem do xmegi ADC MCP3421 rezystory pull-up 1k ( próbowałem z innymi ) transmisja 100kHz ( próbowałem z innymi prędkościami ) problem w tym że działa tylko chwilę zawsze zawiesza się w tym samym miejscu po takim samym czasie. Reset układu nie pomaga - powstaje tylko szpilka: http://obrazki.elektroda.pl/5611210900_1...
witam. Mam taki problem ponieważ sygnał który dostaje z akcelerometru muszę scałkować podwójnie i do tego jest mi potrzebny przedział miedzy próbkami i mam problem z wyznaczeniem tego czasu. żeby mieć stałe odstępy próbkowania wymyśliłem żeby próbkowanie odbywało się w przerwaniu i teraz problem polega na tym ze w trakcie wykonywania przerwania od timera2...
Pisze program na atXmega 16A4 w C (AVR Studio 5). Skonfigurowałem ADC w ten sposób: [syntax=cpp]// ustawienia dla ADC ADCA_CH0_MUXCTRL |= _BV(6);// ADC_CH_MUXINT3_bm; // wejscie na ADC8 - PBO ADCA_CH0_INTCTRL |= _BV(0);//ADC_CH_INTLVL0_bm; //włączenie przerwania ADCA_CH0_INTCTRL |= _BV(1);//ADC_CH_INTLVL1_bm; //włączenie przerwania ADCA_EVCTRL |= _BV(0);//...
Witam , Zaczynam z AS6, dotąd używałem 4.18 głownie z asemblerem Pytanie dotyczy możliwego błędu symulacji prostego kodu w AS6, do potrzeb zapytania sprowadzonego do wersji jak niżej : http://obrazki.elektroda.pl/4044092400_1... również wygenerowany kod obsługi jest poprawny http://obrazki.elektroda.pl/7240738500_1...
Witam. Buduję system, w którym potrzebuję zrobić zewnętrzne wyzwalanie pomiaru przez ADC. W uC pracują 2 ADC, zapisem do buforów po 512 próbek zajmuje się DMA. Wszystko śmiga, ale jeśli wyzwalam kolejne bloki (po 512 próbek) w przerwaniu np od ADC (Compare), od komparatora albo np zwykłym przerwaniem zewnętrznym to ewidentnie na wizualizacji próbek...
Witam Utknąłem z moim kodem i plątam sie w koło ciągle, dlatego proszę o pomoc. W podprogramie "przyciski" przerwania od timer0 mam zrealizowany odczyt przycisków i zrobiłem sobie "flagi czasowe" przyciski: 'przerwanie co 26ms . kod sprawdzania przycisków . incr licz if licz=19 then ' flaga co ok 0,5 s flaga_500ms=0 ' w warunkach początkowych flaga_500ms...
Witam W projektowanym urządzeniu popełniłem pewien błąd, niestety płytki zostały już wytrawione i polutowane a znalezienie przyczyny nieprawidłowości zajęło mi dość sporo czasu, więc wolałbym uniknąć ponownego składania układu. Mam kilka przycisków połączonych z bramką NAND. Wciśnięcie któregokolwiek generuje na wyjściu bramki stan wysoki, który dalej...
Witam Chciałem skonfigurować DMA z ADC i otrzymuje dziwne wyniki a właściwie co 2 raz zapisywana jest pusta linia. Poniżej załączam to co stworzyłem. Sugerowałem się przykładem z książki z 2 części o Xmegach. Korzystam z 2 kanałów wykorzystuje pin 1 z portu A oraz pin 1 z portu B. Czy jest ktoś w stanie powiedzieć co tu jest nie tak? Z góry dziękuję...
Witam, Mam taki problem. Próbuje odpalić LCD z kontrolerem ST565 na Xmega32E5. Do tej pory korzystałem z dobrze opisanego większego kolegi (Xmega128A3U). Problem który opisze poniżej nie występuje na na Xmega128A3U używając identycznego kodu. Kod na potrzeby testów wygląda tak: [syntax=c] #include <avr/io.h> #include <util/delay.h> #include...
Witam, Chciał bym programować urządzenie oparte o Xmega za pomocą USB - FLIP. Jednak zamiast kombinacji przycisków RST/FLIP wolałbym użyć przełącznika dwu-pozycyjnego PRACA/PROG. Jak sądzicie, wprowadzać zmiany w bootloaderze? czy może zastosować jakiś prosty mechanizm elektroniczny? Co będzie bardziej cywilizowane?
Witam. Mam nietypowy raczej problem, poniewaz napisalem programik (AVR GCC) pod przerwanie zewnetrzne, a raczej oba na mega8, Inicjalizacja na 0x02 (w nocie katalogowej oznacza ze generuje przerwanie na zbocze opadajace), Problem polega na tym ze w momencie kiedy wchodzi do pętli nieskonczonej w main(), od razu skacze do obslugi przerwania INT1... (a...
Pozwolę sobie jeszcze raz po czasie poruszyć temat enkodera obrotowego. Jak zmodyfikować [url=https://extronic.pl/content/59-kurs... program żeby każda zmiana stanu enkodera generowała przerwanie. Chodzi o to żeby nie czytać stanu rejestru TCC0.CNT cyklicznie i sprawdzać czy przypadkiem coś się w nim nie zmieniło tylko odczytywać...
Wygrzebałem mój moduł X3 od leon instruments. Do pinu A1, którego przerwanie będę sprawdzał, podpiąłem przewód, z drugiej strony sobie" wisi". Nie jest podpięty do niczego. http://obrazki.elektroda.pl/7657341400_1... Zrobiłem prosty program: http://obrazki.elektroda.pl/8271471100_1... Wszystko jest ustawione tak, jak...
Z ciekawości możesz ustawić wszystkie nieużywane porty i te do których nie masz nic aktualnie podłączone jako wyjścia . To co opisujesz wygląda tak jak by "wiszący pin" będący wejściem generował przerwanie .
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;....
"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...
Nie dasz rady podłączyć kilka pinów pod jeden kanał system events, jest tylko jeden CHnMUX na kanał. W formie protezy na przerwanie INT z kilku pinów możesz programowo włączać przerwanie events.
Nie pasuje to, że nie wrzuciłeś ani jednego kawałka kodu. Wielokrotnie w DIY nie udostępnia sie kodów, bardzo często do projektów w rodzaju miganie diodą. Dlaczego więc ja miałbym udostępnić kody? Mając doświadczenia z pomocą na forach rozumuję tak: Gdy potrzebuję pomocy, najczęściej jestem tylko naprowadzany na trop i pewnie tak by było gdybym otworzył...
Witam. Układ zmontowany, programuję i się okazało, że XMEGA nie obsługuje DMA <> SPI w trybie master. Wiem, mogłem sobie to doczytać. Fakt, przeoczyłem :( Póki co wyciągam programowo 25kSPS dla 4 kanałów jednocześnie :( Ale niewiele tej mocy obliczeniowej mi zostało. Jest sposób by w jakiś magiczny sposób uruchomić DMA, by ciut odciążyło procesor?...
Witam Próbuję wykonać ćwiczenie z kursu Leona http://www.leon-instruments.pl/2014/01/k... Uruchamiałem ten kod pod eclipse Luna z najnowszym toolchainem. Ww właściwościach projektu dla AVR hardware podałem właściwą sygnaturę procka i jego częsttliwość 62000000 Hz , kompilator wykrzykuje ostrzeżenie jak mam definicję zegra...
Na ATMega644 oczywiście nie da się tego zrobić, chociażby z tego powodu, że bufor odbiornika jest jendobajtowy i odebrane znaki by się po prostu zgubiły. Natomiast z AVR da się coś takiego osiągnąć na XMEGA E5, gdy sprzęgniesz USART z EDMA w trybie wyszukiwania wzorców. Wtedy jest możliwość zgłoszenia przerwania po napotkaniu wzorca, który podałeś,...
O kolejkowaniu też myślałem ale to sporo przebudowa programu. Tylko jeśli program jest koszmarnie napisany :) Kolejkowanie to jedyne sensowne rozwiązanie. W aplikacji sprowadzi się do prostej wymiany instrukcji odwołującej się do SPI na funkcję realizującą transakcję. Wkleiłbym ci kod, ale jest tego trochę, tak jak pisałem, ściągnij sobie przykady...
Witam kolegów. Mam pytanie co do przerwań w uC seri XMEGA. Wiem że każdy port może generować przerwanie INT0, INT1. Czy oznacza to że w sumie mam 2xnPORTOW możliwych przerwan tego typu? Potrzebuje uC gdzie mogę wykryć zboczę narastające na 4 różnych wyprowadzeniach, i zboczę na każdym z pin-ów ma wywołać inne przerwanie. Czy podobnie jak w starszych...
Amógłbyś jeszcze napisać czy istnieje w xmega coś jak tryb przerwania CTC w atmega? Potrzebuję przerwanie co 1 sekundę i za bardzo nie wiem jak to zrobić a strasznie mało informacji w sieci:/ Czy CTC to jest CCA w xmega? Każda Xmega ma wbudowany układ RTC orac generator 32kHz więc można sobie 1 sekundowy taimer ustawić bez problemu (i bez dodatkowych...
IMHO jedyne logiczne rozwiązanie. Niby tak, ale równie dobrze ustawienie bitów EVSYS = 0 mogłoby nic nie robić i wtedy osiągnęli byśmy to samo. Tak czy inaczej powinienem raczej użyć ustawienia EVACT = SYNCSWEEP, aby mieć pewność, że ADC będzie wyzwalany przez system zdarzeń i za każdym razem zanim rozpocznie konwersję w tej samej chwili? Czy jednak...
Zmienić tryb pracy na jaki i czy w tedy też trzeba zmierzyć offset?. W pdfie jest trochę za dużo informacji jak na jeden raz. Czy ADC idzie ustawić w tryb free run ze skanowaniem wejść (na porcie A), gdzie po przeleceniu wszystkich zgłosi przerwanie i w tym przerwaniu będzie się można dobrać do wartości z każdego wejścia?
Witam, chciałbym rozbudować kod znaleziony tutaj: http://mikrokontrolery.blogspot.com/2011... Na razie chciałbym dodać obsługę timerów, niestety przerwania nie działają ;/ Sprawdzam działanie przerwań za pomocą JTAGa (Atmel ICE) i stawiam breakpoint'y w funkcjach obsługi tych przerwań, niestety program...
Ogólnie powiem z całym szacunkiem, że z najnowszym AVR Studio jest sporo problemów. Dla początkujących do nauki polecam AVRStudio 4.18 - tam w zakresie podstawowych kostek serii Tiny AVR i Mega AVR wszystko działa poprawnie. (Jedynie najmniejsze kostki Tiny10/9/5/4 są w wersji 4.18 obsługiwane nieprawidłowo, serii XMega nie testowałem szczegółowo w...
Coś te flagi przecież ustawiło... Najpierw włączasz obsługę tych przerwań, potem włączasz podciąganie pinu to flaga już ustawiona...a kasowana jest przez AVR sprzętowo kiedy obsługiwane jest przerwanie. Bascom nie musi obsługiwać żadnego kasowania flagi przerwania bo robi to sam procesor tyle, że w przerwaniu (jednym w wyjątków potwierdzających regułę...
Faktycznie, zupełnie o tym zapomniałem. Co ciekawe kanały można przełączać funkcją "muxpos" tylko od 0 do 7, a Xmega16A4U-AU ma pojedynczy ADC, ale chyba 12 kanałów i powyżej już trzeba kombinować, bo jak się wpisze Muxpos8 i wyżej, to wywala błąd. Zaraz poczytam sobie o tym SCAN, czy można skrócić liczbę skanowanych kanałów do 8, bo więcej nie potrzebuję,...
Witam, Mam problem odnośnie modułu W5100. Mianowicie, po fizycznym resecie modułu (przycisk), moduł zachowuje się w 3 bliżej określonych stanach: 1. działa stabilnie - nie mam nic do zarzucenia 2. działa, ale odbiera tylko niektóre ramki 3. nie działa Opis: Z komputera, za pomocą skryptu, wysyłam ramki w odstępie 100ms do płytki z W5100 i mikrokontrolerem...
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?...
ad 1. To co piszesz jest prawdą dla niektórych procesorów, posiadających przerwania wielopoziomowe z priorytetami. AVR8 z wyjątkiem rodziny XMEGA tak nie mają. Jeśli wystąpi przerwanie to wszystkie inne są blokowane. Tylko XMEGA ma 4 poziomy piorytetów (właściwie 3 - jeden to po prostu blokada przerwań) i procedura obsługi może być przerywana przez...
No właśnie u mnie się to nie kompiluje (cały projekt ze strony). http://obrazki.elektroda.pl/1352516500_1... Nie wiem jak to się fachowo nazywa ten nowy sposób ustawiania bitów czy grup bitowych ale chodzi mi to co zakreśliłem na czerwono. To mi czasami nie działa. Wystarczy że zamiast tych durnowanych nazw ustawię bity po staremu i...
Sam kiedyś zrobiłem odczyt z kamery na ATMega8 i to w sposób zupełnie programowy (procek sprzętowo generował tylko Pixel Clock dla kamery (jakieś 8MHz)). Program musiał ignorować co drugą linię obrazu żeby się wyrobić, ale ogólnie dawał radę. Konwertował też w locie YCrCb na RGB i puszczał po SPI do LCDka. Myślę więc że na Xmega będzie tylko łatwiej...
Pomijając błędy w programie (przecież może paść co innego), zrób sobie np. dwie tablice z weryfikacją. Tam gdzie ważność danych jest ważna, czasem beckup może się przydać, nawet jak nigdy nie będzie potrzebny. Za którymś (dziesiątym, czy dwudziestym) restartem następuje wykasowanie jakiejś komórki A to jest restart napięciowy zasilaniem czy wejściem...
O ile pierwsze miały jakieśtam problemy, to w kolejnych rewizjach je usunęli (aczkolwiek errata nigdy nie była długa). Atmel ma tą przyjemną cechę, że wypuszcza kolejne rewizje procków w których poprawia znalezione błędy, w przeciwieństwie do wielu innych producentów, którzy je powielają i wmawiają, że tak musi być:) Z pewnością tańsza i w sumie lepsza...
Chyba najlepiej by było zrobić dodatkowe przerwanie, które realizowało by elementarne operacje na magistrali 1Wire, czyli włączało stan niski linii i go zwalniało. Wtedy nie byłoby tego czekania 480 us i to dodatkowe przerwanie mogłoby przerwać przerwanie silnika na nieistotny czas. Tylko, czy to nie jest za duża komplikacja? Na czas nadawania reset...
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...
Nawet prościej, bo zamiast drabinki rezystorowej można wykorzystać PWM + filtr RC low pass. Jeśli ktoś chce super precyzji, to wyjście filtra można podłączyć pod ADC. To na jeden pin AC, na drugi porównywane napięcie i włączyć przerwanie komparatora. Natomiast skoro już ktoś wspomniał o AVR XMEGA to tam można ten problem rozwiązać na kilka sposobów:...
Zamiast SIGNAL, używaj ISR. Program napisałeś tak, że przeskoczy go raz i się wywali, a może zresetuje. Powinno być coś w stylu: [syntax=C] int main(void) { funcja_wywolywana_tylko_raz_przy_starcie... while(1) //pętla { funkcja_wywolywana_non_stop(); } } [/syntax] Poza tym obowiązuje lektura dokumentacji. Jeżeli chcesz, aby przerwanie od ADC pojawiało...
Ok rozumiem. Chcę po prostu zliczać impulsy dla enkodera inkrementalnego(dwa sygnały A i B) ale muszę zliczać impulsy dla każdej zmiany stanu na obu liniach aby otrzymać ilość sygnałów 4xPPR Przydał by się także port USB. Było tak od razu :) Jedno z rozwiązań podał ci kolega Atom, ale skoro chcesz też USB, to proponuję XMEGA, ktory ma sprzętowy dekoder...
Możesz precycyjnie wykryc zero sieci, ale procesor potrzebuje czasu (np wejście w przerwanie) aby to "zero" zobaczyć. Czas wejścia w przerwanie jest kompletnie bez znaczenia - to bedą czasy rzędu 100-200 ns. Jakby się uprzeć, to ponieważ autor korzysta z nowoczesnego MCU, z dobrymi peryferiami, to całe sterowanie fazowe można zrobić na tym MCU całkowicie...
tmf napisał: W tym celu musisz tylko stworzyć odpowiedni deskryptor. No to troszkę bardziej złożone niż tylko napisanie deskryptora bo ta biedny AVR bedzie obsługiwać więcej endpoint-ów, musi napisać obsługę obydwu klas i odpowiednią maszynę stanów do rozdzielania ruchu do endpoint-ów, dużo więcej pamięci. Generalnie urządzenia composite są dość nieprzyjemne...
ARM z CM0+. 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 No to już demagogia kolego (at)tmf branie pod uwage jakiegoś starego śmiecia. Wszelkie nowsze (pisze o tanich układach w granicach 10zł) np F303 z...
xmega częstotliwości mikro xmega xmega zegar
xmega przerwanie ricoh reset bębna wymiana grzałki
termet opentherm sharp aktualizacja oprogramowania
How to Change Color on Philips Hue, LIFX, Govee, Kasa, Wiz, Nanoleaf, Merkury, Tuya, LED Bulbs Uszczelka drzwi zamrażarki Bosch LG Whirlpool – naprawa niedomykających się drzwi, regeneracja i wymiana