Proszę o informacje, gdzie w nocie katalogowej można znaleźć informacje na temat priorytetów wykonywania przerwań, jeżeli wystąpią w tym samym czasie. Nie można, ale ten co ma niższy adres w tablicy wektorów wykona się pierwszy jak przyjdą w tym samym czasie. Co najwyżej możesz właczyć przerwania na początku obsługi aby umożliwić obsługę kolejnych...
Dokładniej to nie AVRy, tylko ATMega ma jednopoziomowy sytem przerwań, XMEGA (która też należy do AVR) ma 3-poziomowy system przerwań. ATMegi mają też sztywnie przydzielone priorytety przerwań (o ile jest w ogóle sens mówić tu o priorytetach), XMEGA mają kilka schematów priorytetowania. Tak jak piszą koledzy powyżej można zrobić obsługe nieblokującą...
To nic Ci nie da, nawet jeśli dałoby się zrobić. Problem nie leży w priorytecie przerwań ale w obsłudze przerwań. Musisz ją tak napisać aby nie były zbyt długie, albo zastosować obsługę nie blokującą.
Może przerwanie od INT0 albo INT1 :?:
1. ok, z 1 się wycofuję bo masz zrobione zewnętrzne pull-upy ale niepotrzebnie mnożysz rezystory, gdyż takowe są wewnątrz procesora - wystarczy tylko włączyć je z poziomu programu. 2. to teoretycznie może powodować problem - najlepiej sprawdzaj przerwania w jakiś inny sposób - np. w każdym tylko zapalać lub gasić diodę 3. Rozumiem istotę Twojego problemu,...
1. z tego co piszesz to przerwanie o najwyższym piriorytecie będzie występowało z częstotliwością 4kHz. Zakładając że będziesz miał zegar 8MHz to na obsługe przerwania (zapisanie 8 bajtów) i obsługe innych przerwań będziesz miał: 8MHz/4kHz = 2000 cykli zegarowych co w przypadku procesorów typu RISC daje jakieś 1500 instrukcji. A to jest całkiem sporo....
Przecież twój kod się nawet nie powinien kompilować, więc jest faktycznie zły :) Jak sobie wyobrażasz zagnieżdżenie ISR? Mieszasz nowe makra (ISR) ze starymi (SIGNAL). Poza tym ATMega nie ma czegoś takiego jak priorytety przerwań. Przerwanie TIMER1_COMPA_vect nie zostanie przerwane, chyba, że jawnie odblokujesz wszystkie przerwania co zapewne doprowadzi...
Chwila. Timer bez preskalera, częstotliwość procesora nieznana, załóżmy, że 1 MHz (nieistotne). Timer zgłasza przerwanie co 21 cykli zegara, czyli ATmega zajmuje się na okrągło obsługą przerwań timera, nie mając szans obsłużyć żadnych przerwań o niższym priorytecie (ADC).
Czy w bascomie też trzeba dopisywać instrukjce sei aby uzyskać niższy priorytet przerwania?
W trakcie wykonywania tego podprogramu zostało zgłoszone przerwanie zewnętrzne na nóżce int1 atmega328p. Czy atmega328p przerwie wykonywanie podprogramu nóżki int0 Zależy jak zadeklarujesz przerwanie, czy ISR bez atrybutu lub z atrybutem ISR_BLOCK albo jako SIGNAL czy ISR z atrybutem ISR_NOBLOCK lub jako INTERRUPT. Jeśli przerwanie w przerwaniu jest...
Na jakiej podstawie twierdzisz, że problemem są priorytety przerwań? Przerwania występują na tyle sporadycznie, że nie ma tutaj miejsca na problemy. Jeśli wysyłany jest znak '2', to porównanie (i==2) jest błędne TCCR2 = 1<<CS00 | 1<<CS02 | 0<<CS01 ; proponuję zapisać tak: TCCR2 = (1<<CS00) | (1<<CS02) |...
Z Erraty: "po wejściu do handlera wyjątku (np. ISR) wyjątki (w szczególności przerwania) nie są blokowane jak w AVR" No to akurat nie jest prawdą. Przerwania są blokowane dokładnie tak samo, jak w AVR, czyli blokowane są przerwania o priorytetach nie wyższych niż bieżący. AVR ma tylko dwa poziomy priorytetowe (wątku i przerwania), więc wszystkie przerwania...
Nie tyle musi być zadeklarowana jako reentrant, bo takiej deklaracji nie ma:) co musi być tak napisana, aby była reentrant. Co do zmiennych statycznych to mogą one być wykorzystywane - w końcu taka jest idea zmiennych statycznych, żeby były dzielone przez wszystkie instancje/wywołania funkcji. Co do innych zmiennych to dopóki się używa zmiennych lokalnych...
Witam Czy ja dobrze widze, ze mikrokontrolery serii ATmega nie maja ustawianego priorytetu przerwan ? Z manuala wynika, ze po wywolaniu przerwania system przerwan zostaje wylaczony. I zostaje wlaczony dopiero po wykonaniu podprogramu obslugi tego przerwania. Tak to wyglada i w manualu i w Bascomie. Oczywiscie mozna w podprogramie obslugi przerwania...
To zależy czego się oczekuje. 3 dekady temu na 8 bitowym 1MHz procesorze był graficzny system obsługiwany myszą Oczywiście tak -pomijając różnice w architekturze tak było te 3 dekady temu. Tyle, że dziś w kieszeni każdy ma "komputer" o możliwościach obliczeniowych których nie powstydziły by się kilkadziesiąt lat temu poważne ośrodki obliczeniowe. Dlatego...
Twoje pytanie nie ma związku z ATmega - to są kwestie definicji języka C. Jeśli modyfikujesz (np. inkrementujesz) zmienną w kodzie o dwóch różnych priorytetach (np. w przerwaniu i w pętli), to żaden volatile nie pomoże - musisz zablokować przerwania w programie głównym na czas modyfkacji zmiennej. Co innego, jeśli np. w przerwaniu inkrementujesz,a w...
GCC jakimiś protezami obsługuje przestrzenie adresowe, nie zawsze sprawnie mu to wychodzi To chyba nie dotyczy też tiny 1 series i atmega 0 series gdzie całość (eeprom, sram, flash) jest w jednolitym obszarze adresowym. brak priorytetów przerwań (nie dotyczy xmega) j.w. brak sprzętowego dzielenia Cortex M0 też ;)
Witam. Sprzętowo na samym procku sie raczej tego nie da zrobić. Ale można zrobić bez problemu na przerwaniach. I stabilność częstotliwości wyjściowej będzie bardzo dobra. jeśli będzie to przerwanie miało najwyższy priorytet to bez problemu będzie tak samo stabilne jak sam kwarc. Przecież na przerwaniach od timerów buduje sie zegary i są one stabilne...
W ATmega 16 nie ma możliwości zmiany priorytegów przerwań. Ale jest lekarstwo na Twoją bolączkę, możesz poprostu włączyć przerwania zaraz na początku obsługi przerwania od INT0. Przerywanie przerwań wcale nie jest takie niebezpieczne.
Czyli rozumiem, że jak jednocześnie nastąpią przerwania INT0 i INT1 to du*a ? Przeczytaj jeszcze raz to: W tym przypadku nic się nie stanie - każde przerwanie ma swoją flagę, więc się kolejkują . Chyba, że dojdzie do dwóch przerwań tego samego typu , wtedy informacja się gubi. Tu jest tabelka wektorów przerwań na przykładzie ATMEGA8: http://obrazki.elektroda.pl/6297702500_1...
Przeważnie zadania które nie mogą czekać, pisze się wykorzystując właśnie przerwania. przerwania to przerwania, a nie zadania, które nie mogą czekać. W programowaniu wielowatkowym ważność zadań reguluje się priorytetami. RTOS odpowiednio wywlaszcza zadania przekraczając je. Nie ma znaczenie czy zadanie będzie się wykonywali godzinę czy 1ms. Dostanie...
Jeśli rzeczywiście będzie to po kolei to powinno się wykonać automatycznie stąd if nie są zagnieżdżone, ale kolega MNCHH z jakiegoś :) powodu broni się przed przerwaniami :( Więc nie ma gwarancji, że coś po drodzę się nie wydaży i wysłanie znaku będzie możliwe dopiero za jakiś czas, czyli kolejny znak będzie już czekał w bufforze :( więc trudno powiedzieć...
Czyli żeby ustalić hierarchię, musisz na początku podprogramu przerwania o niższej hierarchi zezwolić na przerwania o wyższej hierarchi. Softwareowo, ale da się. Domyślnie nie ma żadnej hierarchi, jak nade mną napisane ;) Więc żeby ją utworzyć musisz się trochę pobawić
Piszę w C program na atmega do komputerka podającego spalanie w samochodzie i mam problem z przerwaniami. Jednym przerwaniem będzie liczony impuls wtrysku a drugim zliczane impulsy drogi (zapomniałem dodać, że jest jeszcze przerwanie zliczające impulsy czasu rzeczywistego). Jeśli w danym momencie nastąpi otwarcie wtryskiwacza a chwilę później impuls...
Ha ! no to przynajmniej wiemy, że to nie jest bug Atmela. Co prawda, jak pisałem, to jest M2561, program jest "przeportowany" z M128. Właściwie bez zmian, tyle że w M2561 nieco inaczej jest z timerami właśnie. Ok, zmotywowałeś mnie to dalszego szukania... Co prawda, jak jutro tego nie rozwiążę, to będzie poważny kłopot. No ale nadzieja umiera ostatnia...
Ten fragment kodu działa, nie jest to przerwanie ale realizuję zmianę stanu jednak nie ma takiego priorytetu. Jest to kolejna część pętli. Ten fragment nie ma wpływu na część pierwszą problemu. Dlaczego następuje migniecie diody. Moze zastosowanie pętli while(1) to usunie?
A ja Ci powiem tak, Xmega to jest tylko taka ulepszona atmega. I z takim podejściem można śmiało zaczynać, bo zbyt wielu różnic nie ma, z tym, że są ogromne korzyści wynikające z nieporównywalnej funkcjonalności. I jak dla mnie, przesiadka była całkowicie bezbolesna.. no, może najwięcej bólu sprawiło mi wydanie kasy na nowy programator :) Czyli minimum...
Niemniej ten błąd jest taki sam dla każdego kolejnego pomiaru przez co odejmuje się on i otrzymujesz dokładne wskazania O ile nie ma uruchomionych innych przerwań. Nawet, jak te inne przerwania zrobi o "niższym priorytecie" to i tak mogą wystąpić w tym samym czasie lub te "niższe" trochę wcześniej niż przerwanie np PCINT. To może spowodować konieczność...
"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...
Nawet jeśli wystąpią w tym samym czasie wyższy priorytet ma int0 i jak się wykona to przerwanie powinno się wykonać INT1 . Jeśli chcesz zmniejszyć ryzyko zwiększ częstotliwość zegara . Teraz Atmega działa na wewnętrznym kwarcu 8MHz. Wieczorem spróbuję z kwarcem 16 MHz, zobaczę czy jest różnica. Jak pisałem wcześniej, teraz sygnał podłączony jest do...
Jest możliwość zrobienia stopera/minutnika z poczwórnym wyświetlaczem 7-segmentowym używając mikrokontrolera z rodziny atmega? Wyświetlacze najlepiej multipleksować w przerwaniach timera, żeby mieć pewność, że każda cyfra będzie wyświetlana jednakową ilość czasu. Odmierzanie czasu dla stopera/minutnika oczywiście też trzeba oprzeć na przerwaniach timera....
Nie do końca tak jest. Pierwszy problem to podpisy cyfrowe sterowników. Win8 wymaga, a Win7 prawie wymaga tych podpisów. W efekcie brak może znacznie utrudnić korzystanie z takiego USB. Podpisane sterowniki (sterownik to dużo powiedziane, bo to tylko plik inf dla Windowsa) są dostępne od Atmela. Kolejny problem jest poważniejszy - biblioteki softwarowe...
Szkoda, że koledzy zamiast wskazać sensowne rozwiązanie piszą "wybierz ARM i problemy magicznie znikną". Jeżeli dobrze rozumiem, to problem jest taki: Funkcja przesyłająca dane po SPI jest wywoływana z jakiegoś przerwania oraz z programu głównego. Jak to zrobić, aby blokować wywołania na czas transakcji? Dlaczego? Ponieważ do SPI są przypięte 2 porty...
No tak jeśli przerwanie będzie symetryczne to nie obejdzie się bez sumowania, chyba że będziesz wiedział jaka jest różnica w asymetrii. Ale wydaje mi się że to za dużo kombinacji. A może maskować co drugie przerwanie przychodzące z proc audio wtedy mierzył by czas 1 okresu bez potrzeby sumowania. ATmega 128 obsługuje takie maskowanie, pewnie inne ATmegi...
No dobrze- rozumiem że za moich czasów nie było kopiuj/wklej tylko znajdź w bibliotece/wypożycz/znajdź dziewczynę piszącą na maszynie/znajdź maszynę/dyktuj/sprawdź. Nie priorytet przerwań i nie dwa w tym samym czasie. Jakby tak się zdarzyło że dwa różne- to tak. Ale prawdopodobieństwo tego jest bardzo małe. Dlatego w AVR to chyba nikt nie próbuje tego...
A ja przewrotnie zapytam o jaki AVR ci chodzi? Gdyż np. ATXMega mają priorytety przerwań.
Twój punkt widzenia jest obarczony ... Twoim punktem widzenia, a nie moim, czy milionów innych projektantów Nie sądzę by przeszkodą była cena, by przeszkodą było max 3.6Vcore, by przeszkodą były dodatkowe peryferia. Przeszkodą natomiast jest to, że trzeba od nowa peryferia oprogramować gdy do Atmegi było zilion przykładów na uarty, adc, spi, i2c czy...
Wiesz 5 lat, nie 5 lat. Atmega8 to proc. który wg noty katalogowej pierwsze wydania miał w latach 2001-2002, więc posiadanie kompilatora z 8 letnim stażem i uaktualnieniami powinno być zdecydowanie bezpieczne, zwłaszcza, że atmega, czy attiny to nie kombajny posiadające takie perełki jak wsparcie dla zewnętrznych pamięci SDRAM, wsparcie dla wielowątkowości,...
Witam. Podczas projektowania robocika 4 kołowego z 4 silnikami(pololu lub HL149) chciałem założyć na oś 4 tarcze z myszy kulkowej i układ opto (dioda IR +fototranzystor podwójny)+komparatory LM358D Planuje kontrolować przebytą drogę jak i kierunek obrotu kół(coś ala kontrola trakcji), 8 wyjść z komparatorów planuje podłączyć pod 8 przerwań zewnętrznych...
A jeszcze w takim razie małe pytanko wieńczonce. Wiem że to "wróżenie z fusów" ale niektórzy koledzy mają spore doświadczenie. Czy można oszacować z jakim sygnałem poradzi sobie przerwanie jeśli w jego procedurze będą dosłownie dwa warunki, procek mega 64 na zegarze 12MHz? Nie mam generatora żeby przetestować jakiś układ próbny a chciałem wiedzieć czy...
(at)takow drganie serwa podczas odbioru rc5 to normalna sprawa bo polecenie getrc5 w bascomie powoduje zablokowanie innych przerwan a wiec i obsluge serw. borykalem sie takze z tym problemem az wrzucilem rc5 do 90s2343 ktory po porcie szeregowym wysyla dana i powoduje przerwanie od usart ktore ma nizszy priorytet niz od timeka z ktorego korzysta polecenie...
jeśli czytałeś uważnie jakiegoś helpa i tam napisano, że np ATmega8 a raczej jej przerwania INT0 i INT1 nie mogą być wyzwalane zboczami to masz rację - jest to błąd ;) dokładny opis na 100% znajdziesz w nocie pdf ;) danego procka i na tym zawsze się opieraj jako najważniejszym źródle informacji. ... jak słusznie zauważyłeś ta nóżka ma dwa alternatywne...
Dziękuję za załączniki. Akurat znam je, bo na ich podstawie robię próby opisane w tym wątku. Wciąż nie wiem, dlaczego program nie chce wysyłać kolejnych instrukcji bez (znacznych) opóźnień między nimi. Myślałem nawet, że to Slave nie wyrabia z wykonaniem funkcji, ale jak pisałem "zwykła" Atmega wysyła te dane bez problemu, wystarczą jej opóźnienia "...I2C_WaitTillStopWasSent..."....
Witam serdecznie! Przejdę od razu do sedna. Napisałem program do megi328, z przerwaniem INT1, odpowiednio poustawiałem rejestry, uruchomiłem globalną obsługę przerwań sei(), i niestety atmega po podłączeniu zasilania od razu wykonuje przerwanie, mimo, iż switch nie został wciśnięty, wiem, że tak się dzieje, ponieważ w przerwaniu dla przykładu zapalam...
... mocno nie zbaczamy z tematu ;) ... każdy po trochu pokazuje koledze autorowi na co tak ogólnie trzeba zwracać uwagę robiąc jakieś układy i wykorzystując procki. Ważne jest aby nie dyskwalifikować jakiegoś procka albo nie gloryfikować innego ;) ... każdy ma właśnie swoje wady i zalety - przy czym ta rola może się odwracać w zależności od zastosowań...
IRQ tester https://obrazki.elektroda.pl/3243423400_... IRQ Tester to proste narzędzie, głównie do testowania czasu odpowiedzi na impulsy, lub czasów międzyzboczowych dostarczonego sygnału. Program został napsiany na ukontroler AVR Atmega168, a jego głównym zadaniem jest funkcja multiwibratora monostabilnego, którego działanie polega...
"Aż 10 instrukcji.." Ok. Zarejestrowanie strobu - min. 2 instrukcje w pętli. Odczyt dwóch części adresu po 8 bitów - min 2 instrukcje. Sklecenie adresu i odczyt pamięci (skąd w ATmega wziąć 64 KiB RAM na emulowany EPROM?) - załóżmy optymistycznie, że 3 instrukcje. Wystawienie danych na port - min. 1 instrukcja. Wykrycie końca cyklu - min. 2 instrukcje...
Witam W projekcie wysyłanych będzie około 800bytów danych do PC i w PC bedzie na bieżąco wyświetlane. Do czego zmierzam. W czasie kiedy bedę obsługiwać przerwanie od Timer1 może pojawić się sygnał do PC, że dokonywana bedzie tramsm,isja. W atmega8 nie mozna ustawiać priorytetów przerwań w odróżnieniu do 8051. Kiedy pojawiało mi się przerwanie do timer1...
Dzięki za radę ! :D Popróbuję jeszcze tym trochę pobawić się. A czy da się w jakiś sposób ustawiać te priorytety przerwań w ATMega32 ?
If both ADATE and ADEN is written to one, an interrupt event can occur at any time. If the ADMUX Register is changed in this period, the user cannot tell if the next conversion is based on the old or the new settings. ADMUX can be safely updated in the following ways: 1. When ADATE or ADEN is cleared. 2. During conversion, minimum one ADC clock cycle...
Od kiedy avry mają priorytety przerwań, to raz, dwa nic nie wyłącza, ba mają to samo dzialanie (defaultowo) bez parametrów;)
Wektory przerwań mają odpowiednie priorytety ... jeżeli odczyt czasu masz w przerwaniu to przerwanie klawiatury powinno być o mniejszym priorytecie. Jeżeli obsługę odczytu masz w pętli głównej - to zrób własny "kontroler przerwania" :P Po odczytaniu godziny itd. sprawdź czy flaga przerwania jest ustawiona, a jeżeli tak to skocz do procedury obsługi...
Są jeszcze priorytety przerwań - można by je wykorzystać... 1. INT0 ma najwyższy, więc nie wiem, jak to chcesz wykorzystać... 2. Zrobisz naked, to ci coś wlezie w odliczanie takiej g...ej pauzy i potem padnie na tym forum sakramentalne "dlaczego mi to czasem nie działa ?" :P Timer w µC jest po to go używać.
No nie tyle "sztywne", co ich po prostu nie ma ;) - kto pierwszy ten lepszy Można napisać soft przydzielający priorytety, ale jest to dość skoplikowane i nie zawsze się opłaca (w sensie czasu potrzebnego do określenia źródła przerwania, określenia priorytetu, adresu procedury itp. - robi się z tego prawdziwy OS)
http://obrazki.elektroda.pl/3499461100_1... Jest to bardzo specyficzna konstrukcja i prawie na pewno nikomu oprócz mnie nie przyda się w tej konkretnej postaci jaką tu opisuję, ale zawsze pozostają walory edukacyjne, nauczenie się jak coś zrobić albo jak czegoś w żadnym wypadku nie robić :D Urządzenie jest protezą dzięki której omijam...
Możesz przy pomocy tych przerwań wywoływać podprogramy, np: LCALL PODPROGRAM_INT0 i LCALL PODPROGRAM_INT1. Wtedy teoretycznie możliwe by były powroty (RET) lub skoki (np: na końcu podprogramu PODPROGRAM_INT0 dać linijke LJMP PODPROGRAM_INT1, rozpocznie wtedy ten podprogram od początku).. Pamiętaj że masz do dyspozycji również priorytety przerwań oraz...
Pętla ma tą drobną wadę, że jeśli w nią wrzucisz jakieś funkcje warunkowe to nigdy nie wiesz, co jaki czas się dokładnie obróci :) takie tam. Przy jednym warunku to jeszcze nic, ale już przy n rozgałęzieniach, policzenie najgorszego możliwego czasu obrócenia pętli staje się utrudnione. Bo jak warunek nie spełniony to sprawa krótka skok, a jak spełniony...
Jak dobierzesz priorytety przerwań (programowo) z TIMERA i ZCD, i transmisję z UART też zrobisz przerwaniowo to czym się martwisz. UART ma bufor 3 znakowy i jest jednostką samodzielną.
Na przerwaniach świat nie zawsze stoi - DOS miał przerwaniowy system i zrezygnowano z niego głównie dlatego że nie dało się opracować na tym mechanizmie wielowątkowości (dzielenia czasu procesora). Nie znam sie na PC, ale to zdanie brzmi conajmniej podejżanie. A który system operacyjny nie obsługuje przerwań od sprzętu? Zapamiętywanie wszystkiego na...
Witam . Napisałem ( prawie) sobie na ww procesor program w asm i bascomie który ma robić za zamek otwierany kartą . W bascomie wszystko działa w 100 % według założenia jednak w asm mam taki problem że układ sam zmienia swoje taktowanie (ponad 2x) przez co wszystkie funkcje czasowe nie pracują jak powinny . Nie było by w tym nic niezwykłego ( ustawiony...
Przerwania mają różne priorytety (jest o tym w nocie), ale nie można ich zmienić. Dopiero w bodajże XMegach można ustalać priorytety przerwań. Zrobiłeś eliminację drgań, tak, jak ja ci to zaproponowałem?
Pewnie nie doczytałeś, im wyżej na liście przerwań jest dane przerwanie, tym wyższy jest jego priorytet, pierwszy jest wskaźnik reset, drugi wskaźnik INT0, tym samym INT0 ma najwyższy priorytet (zaraz po RESET ofkoz) To że priorytety przerwań w AVR można zmieniać to bajka. Źródło informacji: pdf dowolnego AVRa sekcja "Reset and Interrupt Handling"
A czy można ustawić jakoś priorytety przerwań? Chciałbym zaprzęgnąc do pracy jeszcze cztery przyciski i wyświetlacz LCD. Przyciski dobrze byłoby obsłużyć w jakiś sposób...
http://obrazki.elektroda.pl/9589280700_1... HPS 2014 Hybrydowy laboratoryjny zasilacz sieciowy. Parametry użytkowe zasilacza w skrócie: 1. Wykorzystanie tanich i łatwo dostępnych elementów. 2. Wydajność prądowa min 3A (dla niskich napięć może dochodzić do 5A). 3. Rozdzielczość DAC 12bit. (filtrowany PWM 4.9kHz) 4. Rozdzielczość ADC...
Zalegający śnieg na dachu, o ile jest go dużo, potrafi wyrządzić poważne szkody. Można tu wymienić zrywanie rynien, spadanie dużych bloków oblodzonego śniegu na podjazdy garażowe, parkingi, itp. W celu ochrony przed takimi wypadkami stosuje się różnego rodzaju zabezpieczenia przeciwśniegowe w postaci rur, barier, płotków. Ich głównym zadaniem jest zatrzymanie...
https://obrazki.elektroda.pl/7417895700_... Motywacja Jeden ze znajomych poprosił mnie, aby taki śmieszny pad na USB (kształtem przypominający dżojstik od konsoli NES) https://obrazki.elektroda.pl/5837949700_... https://obrazki.elektroda.pl/8178021400_... przerobić tak, aby dało się go podpiąć właśnie...
ale nie wiem jak podejsc do przerwan zewnetrznych (przyciski). Przyciski mam podlaczone pod: P3.3 (Int1), P3.5(T1), P3.4 (T0), P3.2 (Int0). Jak to jest mozliwe ze sterujac multiplekserowo wyswietlaczami segmentowymi wysylajac aktywny bit na port P3, moge jednoczesnie zglaszac zewnetrzne przerwania (z przyciskow)?? Możesz. Ale dlaczego przyciski mają...
Witam. Mam problem z przerwaniami w atmega8. Wcześniej nie potrzebowałem przerwań więc to zagadnienie mnie nie interesowało. Potrzebuję wywołać przerwanie zewnętrzne int0 które uruchomi timer1, a ten zacznie odmierzać czas. Napisałem coś takiego (oczywiście to część z większego projektu) '$sim $regfile = "m8def.dat" 'informuje kompilator o...
https://obrazki.elektroda.pl/4950580000_... Witajcie moi drodzy W tym temacie poznamy podstawy przerwań i timerów w PIC18F2550 . Na początek będzie krótki wstęp teoretyczny, a potem wszystko przerobimy dokładnie na praktycznych przykładach. Do lektury tematu przyda się ogólna wiedza na temat przerwań i programowania w C, choćby taka...
Najlepszym źródłem do sprawdzenia danych technicznych jakiegoś układu scalonego jest jego nota aplikacyjna. Do ich wyszukiwania polecam www.elenota.pl. ad 1. Za uruchomienie / zatrzymanie licznika 1 odpowiada bit TR1 w rejestrze TCON (źródło: [url=http://www.iele.polsl.pl/elenota/At... rodziny 8051 - Atmel, str.82) Analogicznie bit...
Witam Po żmudnych testach uruchomienia DMA w taki sposób aby działało z drugiego licznika coś udało mi się osiągnąć chociaż wyniki mnie zaskakują. http://obrazki.elektroda.pl/2501383900_1... http://obrazki.elektroda.pl/2625388300_1... http://obrazki.elektroda.pl/1655047300_1... http://obrazki.elektroda.pl/4889497000_1...
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...
Nie polecam, jest to pewne rozwiazanie, ale troche ryzykowne. Trzebaby uważać na priorytety przerwać, co by przypadkiem nie zostało zgubione jakieś lub reakcja na nie nie byłlby za późno. Chyba lepiej w tym przpadku skanować linie w petli. POZDRAWIAM :multi: patryk
Poprawiłem funkcję dot. przerwań: [syntax=c]void Initialize_INTERRUPT_For_nRF(void) { // pin IRQ ustawiony na pin PC2 PORTC.DIRCLR=PIN2_bm; // pin, na którym jest IRQ PORTC.PIN2CTRL=PORT_ISC_FALLING_gc;// set intterupt active on falling edge PORTC.INT0MASK=PIN2_bm; // generowane jest przerwanie INT0 PORTC.INTCTRL =PORT_INT0LVL_MED_gc;// poziom HI dla...
Nalegałbym na FIQ. Trzeba sobie uświadomić jak działają przerwania. Przychodzi przerwanie jak ARM jest w normalnym trybie, dostaje sygnał na linii IRQ, przerywa wykonanie programu i skacze pod wektor przerwań, tam ma skok do obsługi przerwań. Fajnie, tylko pierwszą rzeczą jaką robi ARM w chwili otrzymania przerwania to je wyłącza! Tak, że wykonując...
Witam Mam problem z uruchomieniem timera w Atmel Studio 7, program przeznaczony jest dla procesora xmega128a3u Mam załadowane następujące biblioteki: [syntax=c]#define F_CPU 2000000UL #iinclude <util/delay.h> #include nclude <avr/io.h> #<avr/interrupt.h> uint8_t licznik = 0; [/syntax] i poniżej definiuje ustawienia timera [syntax=c]TCC0.PER...
Rozumiem, że czas nie pozwala na ręczne przepychanie bitów, choć każdy slave toleruje zmienną częstotliwość zegara, czyli przerwanie zegarowe magistrali i2c może mieć niski priorytet. pomocą może być zewnętrzny kontroler I2C, 8 bitów danych, kilka sterujących, czyli spora część tego co mamy, ale coś za coś, typu kości nie pamiętam, jakiś PCF, szukał...
Stdatomic nie rozwiązuje wszystkich problemów programowania współbieżnego. Które w przypadku atmegi sprowadza się raczej tylko do obsługi przerwań. Co prawda są nawet multithread OS-y do małych AVR-ów, ale to chyba raczej w ramach ciekawostki Co to za różnica do czego to się sprowadza. Masz 2 konteksty wykonania programu i trzeba sie zabezpieczyć przed...
Nie wiem czy obie zmienne są zaniżane bo nie mam możliwości zadania układowi dokładnej ilości impulsów, natomiast zawsze impulsy zliczone na przerwaniu INT0 są zaniżone w stosunku do tych zliczanych na przerwaniu INT1. Owszem, masz taką możliwość - skorzystaj z symulatora dostępnego w Atmel Studio i wygeneruj mu potrzebny plik stymulacji, dzięki czemu...
Przerwanie w przerwaniu hmm. rzecz bardzo dobra i celowa , ale raczej nie w tej klasie sprzętu :) od takich rzeczy jest kontrola priorytetów. Co zaś "dobrego" czy "złego" nawyku zgadzam się z kolegą w całej rozciągłości :) Piszę i pisałem i zamierzam pisać wiele procedur na różnorodny sprzęt w C51 blokowania sprzętowego nie było :) , więc jak powielam...
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...
A czy procki na rdzeniu 8051 atmela (z ISP) są równoważne z oryginałem? Jeśli chodzi o szybkość wykonywania instrukcji i pamięć RAM to tak, wszystkie bazują na oryginalnym 8051/8052. Natomiast posiadają często dodatkową pamięć EEPROM (obsługiwaną rozkazem movx) oraz interfejs SPI. 8051 nie ma - a przynajmniej Ja nie znalazłem - takiego fajnego darmowego(!)...
Nestety okazuje się że jakiegoś nieznanego powodu, przy okazji czas segara zostaje zmieniony ! i to na dodatek jakąś dziką wartością z poza zakresu 24godzinnego czasu. Na przykład godziny przyjmują wartość 30 ! Rozwiązanie jest bardzo proste!!! Układ PCF8583 dane w rejestrach koduje w sposób BCD . Tzn: pierwsze cztery bity w bajcie liczą dziesiątki,...
Witam , mam nadzieję iż nie zanudziłem bez reszty.. W zestawieniu z moimi "dokonaniami asm." kolega michalko12, jest najbliższy temu co ja kiedyś robiłem . Oto wersja asm z przełącznikiem kompilacji aby kompilować jako samodzielny plik - kto chce ->ten może :D ( ta wersja to 16-timerów, 16-nasto bitowych, każdy cztery tryby konfiguracji, oczywiście...
Sprawdziłem i program w ogóle nie wchodzi do warunku if(Flaga==1). W przerwaniu Flaga jest ustawiana bez problemu, jednak mimo to program nie wykonuje instrukcji w if(Flaga==1). Ma ktoś jakiś pomysł dlaczego?? Dodano po 5 Hmm. Miałeś racje z tym volatile. Dałem volatile int Flaga i teraz jest OK. Dzięki Dodano po 1 Witam ponownie. Przetestowałem wszystkie...
Już nie pamiętam dokładnie, ale zmniejszyłem czasy w funkcji w1_bit_io zamieniając na funkcje delayMicroseconds(), no właśnie wtedy przydaje się analizator, bo pauza miała być na 14us a była ponad 25. I tak jest w okolicy 20, ale już działa z Atmegą. Tobie pozostają inne czujniki lub wykonanie kilka delikatnych prób po parę us w dół i w górę. Nie sprawdzałem...
Witam Piszę na atmedze8 w bascomie program do odczytywania danych z odbiornika GPS. GPS jest podłączony RSem do Atmegi, obsługuje go sprzętowy UART. Transmisja jest realizowana z prędkością 4800, megę taktuje zewnętrzny kwarc 7,3728 Mhz (ale na wewnętrzym 4 Mhz też próbowałem). Oto kod obcięty o parę chwilowo nieistotnych rzeczy (definicje zmiennych,...
Tłumaczą Ci ludzie już drugi dzień. Zwłaszcza kolega Logan . Czy tak trudno przeczytać w Helpie: Instrukcja ON INTERRUPT Przeznaczenie: Wykonuje skok do podprogramu gdy wystąpiło określone przerwanie. Składnia: ON źródło_przerwania nazwa_podprogramu Jeśli trudno to porzuć programowanie - są łatwiejsze profesje.
System event może dla timera robić dwie rzeczy - być źródłem zegara - to już zrobiłeś, ale oprócz tego każdy timer ma rejestr (CTRLD), w którym można powiązać kanał zdarzeń z akcją, jedną z dozwolonych akcji jest zmiana kierunku zliczania góra/dół (UPDOWN). Zresztą już to musiałeś wykorzystać, bo jedną z akcji jest QDEC, czyli dekoder kwadraturowy....
Na moją wiedzę nie można, tak samo jak nie można tego zrobić dla rzeczywistego portu szeregowego. Fakt, że usbser.sys jest fatalny i powoduje różne kłopoty. Z tego powodu niektórzy producenci dostarczają swoje sterowniki dla VCP. Bodajże np. NXP Tym niemniej nie tłumaczy to Twoich kłopotów. Jeśli podłączę do komputera np. odbiornik GPS przez jakąkolwiek...
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ą:...
Witam, Uruchomiłem RS232 przez klase CDC z Twojego tmf kodu: http://mikrokontrolery.blogspot.com/2011... (dzięki działa super) I teraz chciałem zrobić przerwanie TCC0 z f = 1 Hz jednak kod poniżej nie che mrugać diodą LED ;/ Dodano po 4 Gdy przekopiowałem do nowego projektu ten Timer TCC0 i przerwanie...
Co to dokładnie oznacza? Nie wchodzi do przerwania, nie wychodzi? Masz sprzętowy debuger? (na jakim środowisku procujesz i jaki programator) I może dodaj sobie diodę do debugowania. Albo wykorzystaj LCD do debugowania. Aby dowiedzieć się do którego momentu program dochodzi. Np,wyświetla się napis HOT ON? A tak swoją drogą to co to ma być? while(!(SPR_GORA)...
No tak, kwestie w których musiałbyś mi przyznać rację sprytnie ominąłeś :) Niech tak będzie. To nie tak :). Po prostu miałem mało czasu na napisanie postu i musiałem go trochę skompresować. tmf, ja bardzo sobie cenię Twoją wiedzę w dziedzinie AVR 8-bit, naprawdę. Ja po prostu chciałem podyskutować, wiesz, żeby się coś działo ;). Nie miało być napastliwie,...
Czemu od razu "SAMxxx"? Nie ma na swiecie innego producenta niz Atmel?! Prockow nie identyfikuje sie po cyferce stojącej za "SAM", tylko po RDZENIU!!!! Zdecyduj, jaki RDZEN chcesz oprogramowywać, nastepnie poszukaj producentow ktorzy maja w ofercie procki na wybranym rdzeniu, i tyle. Krotki opis charakterystyki: - Popularny ARM7 Całkiem niezłe procesory,...
http://obrazki.elektroda.pl/3025550100_1... Mając do dyspozycji jedną matrycę 8x8 czerwonych diod LED o boku 60,2mm oraz mikrokontroler ATtiny861 pozostałe po innych projektach postanowiłem zbudować to, co każdy elektronik chociaż raz w życiu zbudować musi: zegar ;). Ze względu na charakter wyświetlacza miał to być zegar binarny, ale...
Nie chce się nic pojawić na wyświetlaczu ;/ Może cały kod pomoże ?: [syntax=c] /** * (c)2013 Tomasz Francuz * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions...
Tak wygląda mój kod nadajnika Wyslij_rfm12 wywołanego przez flagę Flaga_wyslij
Pojawił mi się problem taki, że nie mogę odpalić przerwań. Mam 2 programy: 1- test przerwań poprzez zmianę stanu na pinie D0 i generowaniu dźwięku przez PIEZO - działa super. 2- wstęp do wariometru, też działa super, wykresy generują się bardzo realnie. Próba uruchomienia przerwań w programie 2 nie działa. Timer się kręci elegancko bo wartości licznika...
http://obrazki.elektroda.pl/8660171200_1... Celem projektu było zbudowanie odtwarzacza MP3/WAV, używając jedynie układu FPGA, pamięci RAM i przetwornika stereo DAC. Układ wykorzystuje 32-bitowe jądro procesora programowego pracujące przy taktowaniu poniżej 60MHz, które odpowiada za dekodowanie MP3 bez wsparcia sprzętowego - poza wykorzystaniem...
priorytety przerwań atmega obsługa przerwań obsługa przerwań atmega
piosenka radia elektryczna tylna klapa szybkozłączka pneumatyczna
philips d9109 mikrokomputer cobra1
Defro Hydropell 12 kW: Układ otwarty czy zamknięty? Naczynie przeponowe w układzie otwartym - działanie i ryzyka