(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...
ad 1. Zastanów się co się stanie jeśli pomiędzy skasowaniem flagi, a zablokowaniem pinu nastąpi zmiana jego stanu? Flaga ponownie się ustawi sygnalizując przerwanie, które zostanie obsłużone. Dlatego lepiej najpierw zablokować możliwość sygnalizowania przerwania, a dopiero potem skasować flagę. ad 2. Kasowanie PORTC.INTFLAGS = 0x01; jest jak najbardziej...
Ż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.
Samo wejście i wyjście z przerwania nie kasuje sprzętowo flagi w typie Ex. Skasuj flagę przerwania "ręcznie" w przerwaniu i daj znać jak taka akcja się skończyła :D
"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 , 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...
Kolega R-MIK ma racje. Natomiast ja się zdziwiłem. Zazwyczaj nie czytałem/nie zapisywałem flagi związanej z przerwaniem tylko pisałem obsługę przerwania gdzie flaga sama była kasowana. Jako "Appendix" chciałbym przypomnieć, bo może kiedyś kolega użyje Xmegi serii E, że tam wejście w procedurę obsługi przerwania nie kasuje flagi "sprzętowo" czyli samym...
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...
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...
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ć...
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łę...
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);//...
Mam przerwanie na INT1, ustawiam je tak: EICRA = _BV(ISC11) | _BV(ISC10); EIMSK = _BV(INT1); Jest ono wyzwalane na rosnące zbocze. I działa, jak podaje na pin 5V to przerwanie występuje, ale występuje cały czas. Tzn nie raz przy narastającym zboczu, a cały czas, kiedy występuje 5V na pinie. Przerwanie wykonuje się non stop od początku, dlaczego? Przecież...
Napisałem sobie program który po wykrytym przerwaniu zapala diode led. [syntax=c]#include <avr/interrupt.h> #include <util/delay.h> void init() { cli(); PORTB_DIR =255; PORTA.DIR = 0; PORTA.INT0MASK = (1<<2); PORTA.PIN2CTRL = PORT_OPC_WIREDORPULL_gc | PORT_ISC_FALLING_gc; PORTA.INTCTRL = PORT_INT0LVL_LO_gc; PMIC.CTRL|=PMIC_HILVLEN_bm|PMIC_MEDLVLEN...
Czemu przestają działać przerwania jak skorzystam z funkcji spi_send() To jest wycięty najmniejszy działający kawałek kodu z [url=http://www.elektroda.pl/rtvforum/to... wątku Do pinu D0 mam podłączony brzęczyk. Po 2 sekundach w momencie wysłania czegokolwiek na SPI brzęczyk milknie ale tajmer się kręci dalej bo sprawdzałem przez terminal....
Witajcie Napotkałem następujący problem - Mam układ komunikujący się szeregowo z procesorem w sposób następujący: 1. Układ wywołuje przerwanie 2. Odbieram dane statusu od układu 3. Wychodzę z przerwania i to działa. Problem zaczyna się jeżeli odebrane dane statusu wymuszają w procesorze kolejne operacje z użyciem układu. Ponieważ idzie to tak: 1.Układ...
Witam, Używam przerwania zewnętrznego na INT0 w konfiguracji na zbocze opadające. Funkcja przerwania jest definiowana w ten sposób: [syntax=c] ISR( INT0_vect, ISR_BLOCK) { //ciało przerwania } [/syntax] Wszystko działa bardzo dobrze, oprócz jednej rzeczy. W przerwaniu wykonuje się kod, który powoduje powstanie zbocza opadającego na pinie, z którego...
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...
Potrzebuję zrealizować komunikację przez USART z możliwością obsługi przerwań. Chodzi o to, że w czasie odczytu danych z enkodera chcę móc wywołać przerwanie od danych przychodzących z komputera. Nie bardzo wiem jak się za to zabrać. Nie mogę używać strumieni do pobierania danych z USART bo mogły by zablokować cały program (getch lub scanf). Chciałem...
Mojej walki ciąg dalszy, pamiętam o poprzednich tematach, uczę się i kiedyś do nich wrócę :) . Otóż podłączyłem czujnik wstrząsów do PD3 i chciałem wykrywać wstrząsy przerwaniem. A propos, okazało się że samochodowy 12v świetnie chodzi na 5v, diodki mrugają więc wiem że wstrząsy wykrywa. Wstrząs sygnalizowany jest zwarciem sygnału do masy - i zmierzone...
Próbuję zrozumieć działanie przerwań i coś mi to nie wychodzi, chciałem uzyskać efekt że po naciśnięciu przycisku program który jest w pętli nieskonczonej obsługuje przerywanie ale mi to nie wychodzi, o to fragmenty kodu: #include <avr/io.h> #include <avr/interrupt.h> #include <avr/signal.h> ENABLE_INT0_FLAGING; waitms(unsigned...
Witam Mam problem z przerwaniami w Xmedze. Zarówno przy Timerze jak i UART. Najprościej mówiąc uK nie generuje mi przerwań (podprogramy obsługi przerwań nie są wykonywane). Inicjowałem przerwania w danym "urządzeniu", ustawiałem poziom przerwania, aktywowałem poziomy przerwań i aktywowałem globalnie przerwania. Co trzeba jeszcze zrobić?
Tak dokładnie o to mi chodziło. Spróbowałem to zrobić tak: w pętli głównej jest cały czas zapalana lampka (włączane zasilanie). W przerwaniu od zmiany zbocza sprawdzany jest stan logiczny wyjścia komparatora i gdy jest "1" to ustawiana jest flaga oraz wyłączana lampka a gdy jest "0" to flaga jest kasowana a lampka zapali się dzięki pętli głównej. Niestety...
Czy prawidłowo zastosowałem się do wskazówki stosując najpierw zapis: OSC.CTRL |= OSC_XOSCEN_bm; a na końcu całej operacji wyłączając 2MHz tak: OSC.CTRL = OSC_XOSCEN_bm; ? IMHO tak jest prawidłowo. Wyłączenie generatora 2 MHz nie jest niezbędne, po prostu zmniejsza zużycie prądu. Stosuję optymalizację Os więc pewnie pomimo mojej niewiedzy wszystko...
Tak, są błędne. ATMega32 dysponuje jednopoziomowym systemem przerwań i aktualnie wykonywana funkcja obsługi przerwania nie może być przerwana. Chyba, że jawnie na to zezwoli odblokowując flagę I rejestru stanu. Z AVR dopiero XMEGA posiadają 3-poziomową obsługę przerwań.
Nie odblokowałeś w kontrolerze przerwań przerwań o najwyższym priorytecie, które generuje ADC. W XMEGA układ peryferyjny generuje przerwania o trzech różnych poziomach, które trafiają do kontrolera przerwań, który je przekazuje dalej jeśli dany poziom jest w nim odblokowany i dopiero dalej masz flagę I zmienianą przez sei(), i obsługę przez CPU.
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...
Witam, moim zdaniem źle odbierasz dane ze sprzętowego spi. Nie ma sprawdzenia czy dana (bajt) jest przez spi odebrana, a Ty zczytujesz ją zanim odbieranie sie zakończy. Przy spi programowym Ty wysyłasz zegar i po ośmiu taktach sprawdzasz liczbę odebranych bajtów. Przed odczytem SPID.DATA sprawdź flagę przerwania - co znaczy że odebrano, bądź wysłano...
No zgodziłbym się z Wami w 100% gdyby nie to, że niestety nie do końca to działa tak jak opisujecie. Jeżeli faktycznie Bit 0 – BBPODF: Battery Backup Power-on Detection Flag odpowiadało za sygnalizację, że bateria jest po wyłączeniu zasilania powinna być ustawiana ZAWSZE (przy podłączonej baterii), a tak nie jest. Ustawia się tak 50/50. I drugie....
Tak jak pisałem, obsługa przerwania ze względu na uwarunkowania kompilatora jest piekielnie długa i naprawdę na tym nic nie zyskujesz. Zobacz jak wygląda wygenerowany kod asemblerowy nawet dla prostej funkcji. Piszesz o sprawdzeniu stanu klawisza co chwile, a czym to się różni od sprawdzania co chwilę flagi, którą zmienisz w przerwaniu? Chyba, że masz...
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...
Jakiego typu jest zmienna adc? float? Jakie jest taktowanie IO? Jaki model XMEGA? Generalnie nie podoba mi się to kasowanie flagi przerwania, podobnie odblokowanie układu wzmacniacza na wejściu ADC. Odpal powyższy kod w symulatorze i sprawdź po inicjalizacji czy rejestry ADC wyglądają rzeczywiście tak jakbyś sobie tego życzył.
...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...
Sprawdziłem też dla porównania kanał ADCA. No i wyniki podobne, czyli bez sensu zupełnie, wynikiem konwersji jest 1706 przy napięciu 1.19V. Dodano po 2 A może mam coś z zegarami nie tak? Tak ustawiam taktowanie i clk_per'y: Dodano po 2 Sprawdziłem też tryb różnicowy z taką konfiguracją: Dodano po 47 Dodam, że wyniki ADC wyglądają tak jakby był offset...
Nie wiem jak jest w atxmega, ale jakby coś to zawsze możesz sobie co przerwanie pod koniec zapisywać stan pinów do zmiennej a na początku porównywać tą zmienną z aktualnym stanem. Dzięki temu będziesz wiedział który pin wygenerował przerwanie. Poza tym w atmegach na ten przykład każdy port ma swoją własną flagę. Ale może niech wypowie się ktoś kto zna...
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...
Obstawiam kłopot z wykonaniem funkcji uart_printf. Na czas jej wykonania masz blokowane wszystkie przerwania. Sprawdź flagę stanu USART - pewnie masz błąd buffer overrun. Jeśli potrzebujesz szybkości dużo wyższych niż 9600bps, to pomyśl też o XMEGA, w której odbiór danych z USART możesz zrealizować przez DMA, dzięki temu i kilka Mbps nie jest problemem.
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...
Witam, bawię się jako początkujący procesorami ARM i Xmega. I mam kilka przemyśleń, nie wiem czy słusznych. Zależy mi na bardzo szybkiej reakcji na przerwanie zewnętrzne INT. I tu jest moja wątpliwość, otóż co z tego, że taktowanie wynosi 72MHz, jeżeli w każdym przerwaniu zewnętrznym muszę najpierw dać ifa sprawdzającego skąd ono pochodzi czyli np:...
Zminana na odczyt co 60s zmieni tylko tyle, że mignięcie będzie co 60s a nie co sekundę, niby lepiej, ale ciągle nie tak. Jeśli po włączeniu/wyłączeniu przerwań program idzie w maliny to znaczy, że masz w programie błąd. Najpewniej oprócz flagi I modyfikujesz także inne flagi tego rejestru. Zamiast modyfikować rejestr kontrolny procesora użyj sei/cli....
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...
Odpalam mapowanie na początku i cały odczyt traktuję jak SRAM, tak samo w przerwaniu jak i w pętli głównej? Jeśli tak, to rzezczywiście bardzo wygodne. Dokładnie tak. Dobrze rozumiem, że do problemu dojdzie, gdy akurat korzystam z rejestru CMD kontrolera i odpali się przerwanie, które będzie czytało z flash, a rejestr CMD nie będzie wtedy 0x00? Czy...
tmf Powiem bez bicia, że nie tak łatwo znaleźć te kody. Udało mi się ściągnąć bodajże z helionu paczkę o nazwie avrppr ale, nie odnalazłem przykładu z ADC. Natomiast znalazłem błąd w samej konfiguracji projektu. Kiepskie oświetlenie i moja ślepota doprowadziły do tego, że zamiast stworzyć projekt z Xmega 128A3 U to zrobiłem z Xmega 128A3. Po tej zmianie...
Witam , dzięki za odpowiedź .. i to od samego MISTRZA. odnośnie kompilatora (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.939\avr8-gnu-toolchain\... . Dla porządku - jestem startującym do C , zatem wiele pytań , dla wielu pewnie w kategorii " oczywista oczywistość". Dotąd pisałem w asm. próbując przesiąść się na C , zaczynam po prostu...
Czy wróbelek ma jedną nóżkę od drugiej? Tak, ale... Kolego, jak chcesz uzyskać sensowną odpowiedź, to zadaj sensowne pytanie. Mogę się domyślać, że włączenie oznacza zezwolenie na obsługę przerwań i wtedy polega to zazwyczaj na ustawieniu bitu w rejestrze maskującym układu peryferyjnego + ustawieniu bitu zezwoleń na przerwania od danego układu (np....
Dla małych kontrolerów, w stylu ATmega, z powolnymi zegarami, trzeba by chyba napisać kod w ASM, aby mieć kontrolę nad tym, ile taktów zegara zajmuje wywołanie przerwania, włączenie lub wyłączenie licznika, bądź też jego przeładowanie. Dostępne są tylko liczniki 16 bitowe, więc trzeba byłoby je regularnie przeładowywać i zapamiętywać ilość przeładowań,...
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;....
Pokaż proponowany kod. Chodzi mi o moją funkcję regulacji, regulatora PI, w przetwornicy impulsowej. Czy można tutaj może coś lepiej zrobić? (mikrokontroler XMEGA) [syntax=csharp]/*Funcja regulacji przetwornicy*/ ISR(TCC5_OVF_vect) { int16_t wartosc_rzeczywista; //Wartość rzeczywista int16_t error; //Uchyba pomiaru static int16_t integral; //Część...
Prawda jest taka, ze bez użycia przerwań nic sensownego nie da się zrobić. Czy to będzie Arduino czy ARM, czy (tfu przez lewe ramię) Bascom. Jakiej jedno proste zadanie tak. Może i kilka ale dokładając kolejne program nie nadąża w pętli głównej sprawdzać flag i wykłada sie tam, gdzie 6502 z zegarem 1MHz (0,5MIPS) daje radę bo używa przerwań (AVR 16MHz...
Przede wszyskim sprecyzuj jakie sygnały chcesz badać - częstotliwość i szerokość badanych impulsów (granice). Od tego zależy czy wybrana metoda jest dobra. Po drugie sprecyzuj co chcesz badać - mierzysz szerokość impulsów, czy interesuje cię różna reakcja na zbocza? Wśród AVR masz różne rodziny, ATTiny, ATMega, XMEGA, niektóre znich mają specyficzne...
Oj coś koledzy krążycie wokół tematu a nie widzę nigdzie pełnej odpowiedzi. Niektóre są za to błędne albo upraszczające. F_CLK_ADC, to tak jak ktoś pisał, tylko częstotliwość taktowania ADC. A że jest to przetwornik typu SAR (z sukcesywną aproksymacją) to konwersja 1 próbki trwa n cykli zegara F_CLK_ADC. W przypadku tego ADC jest to: - 25 cykli dla...
Który z AVRmega ma dwa I2C? A programowo kolega nie umie zrobić? Działa i to dobrze. Ardymenty sie kończą czy kolega chce zabłysnac wiedza na temat I2C? "Ardymenty" się nie kończą ale myślałem, że kolega trochę o tym poczyta i coś z tego, co wyczyta, rzuci mu się w oczy w odniesieniu do kontekstu wątku.Widocznie się przeliczyłem Zaczyna się komplikować...
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...
Witam , Po dłuższej przerwie próbuję się przeprosić z AVR-ami , przechodząc jednocześnie do XMega, zadanie jest proste - pomiar obrotów z wejścia PC0 . 1. Timer TCC1 - odmierza czas 100us 2. Timer TCC0 - używa przepełnień TCC1 jako zegara , strobem do pomiaru okresu / "częstotliwości" jest routowany sygnał z PC0 3. Flaga TCC0_CCA ma być z kolei wyzwalaczem...
Hmm, po mojej przygodzie z jednym PICem z rodziny 18F nie jestem jakimś szczególnym ich fanem ;), ale może coś się zmienia w dobrą stronę? Czy ktoś jest w stanie wyjaśnić zagadkowe pojęcia typu Możliwość zwektoryzowanej obsługi przerwań Czy oznacza to, że w końcu po wystąpieniu przerwania nie trzeba "if-ować" po wszystkich możliwych flagach, żeby dowiedzieć...
Jak mam umieściś wszystko we flash, skoro nie wiem jaka treść będe generował. Są elementy stałe i są elementy, które się zmieniają. Owszem, mogę na przemian wysyłać dane z flash (stałe elementy) i generowane dynamicznie z ram ale ze względu na elementy dynamiczne nie wiem ile danych będę przysłał. Musiałbym więc najpierw zsumować wielkość elementów...
Rozumiem, w takim razie, że zawsze warto używać _update, zamiast _write? To zależy co chcesz zrobić. Jak zainicjować EEPROM domyślnymi wartościami to obowiązkowo write. Jak zapisać blok danych uprzednio odczytanych z eeprom to zdecydowanie update. Zawsze można dać _update. Jedyna różnica pomiędzy _write i _update polega na tym, że _update sprawdza,...
Może dodatkowe pytanie do postu powyżej czy przy obecnym kodzie można w przerwaniu zmieniać pin wejściowy dla ADC? Przykład: [syntax=c]ISR(ADCA_CH0_vect) { static bool flagaADC = false; if(flagaADC) { pomiarPin1 = ADCA.CH0RES; ADCA.CH0.MUXCTRL = ADC_CH_MUXPOS_PIN2_gc; flagaADC = false; } else { pomiarPin2 = ADCA.CH0RES; ADCA.CH0.MUXCTRL = ADC_CH_MUXPOS_PIN1_gc;...
Trochę już odbiegliśmy od głównego wątku, ale nikt nie narzeka, więc ok. Na szybko: Dokument Atmela, który podałeś nie dotyczy gcc, to stary dokument. tak tak, wiedziałem o tym, że był pisany pod kątem IAR. W każdym razie sporo zasad jest tam uniwersalnych. Chociażby kwestia optymalizacji globalnych flag - bo to dotyczy już przestrzeni adresowej AVRek...
Cześć. Pracuję nad takim małym systemem komunikacji pomiędzy kilkoma urządzeniami pomiarowymi a PC. Pomiędzy urządzeniami a PC jest coś w rodzaju hub'a, co sam zaprojektowałem i wykonałem - ogólny schemat jest taki: http://obrazki.elektroda.pl/5939738300_1... Wspomniane przeze mnie urządzenia pomiarowe nie są pierwszej nowości, więc...
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...
Witam, postanowiłem przenieść swój układ z atmegi na atXmegę. Do tej pory do komunikacji urządzeń po serialu używałem biblioteki SoftwareSerial (Arduino) bo układ miał tylko 1 fizyczny serial. Teraz w Xmedze mam ich 5 :) Wgrałem [url=ten]http://mikrokontrolery.blogspot... programik i wszystko...
Witam Od kliku dni walczę nad implementacją ENC28J60 do Xmegi128A3U. Najpierw udało mi się zrobić malutki serwerek na Atmega32 i działa poprawnie ( bazowany na książce Mirka ). Teraz chcę go przełożyć do Xmega i nawet nie chce go pingować. Przypuszczam że błąd leży gdzieś w SPI. Xmega taktowany zewnętrznym kwarcem 16MHz , SPI - 1MHz, ENC28J60 taktowany...
flaga przerwania xmega przerwania xmega flaga przerwać
impact xilinx bernard pasek compaq dioda zasila
pioneer direct ładowarka solarna
MZ ETZ 250 – jak sprawdzić impulsator Halla i indukcyjny, testy, objawy usterki Renault 1.6 dCi – intensywny zapach spalin przy wypalaniu DPF i porannym rozruchu