SYSCFG->EXTICR Nie powinieneś działać na rejestrze 0? void EXTI1_0_IRQHandler(void) To przerwanie na pewno się tak nazywa? Bo tutaj się nazywa ...0_1... NVIC_EnableIRQ(EXTI0_1_IRQn); Masz dobrą tablicę wektorów? 4\/3!!
Stąd, że porty D2 i D3 są portami dedykowanymi do wprowadzenia zewnętrznych przerwań. Spójrz datasheeta megi8.
chciałem zapytać co jest źle w poniższym kodzie? To, że wykona się raz i utkwi w wiecznej pętli w "fini0".
Procedura Getrc5 wykorzystuje Timer0. Użyj innego.
INT0 jest na pinie PD0, a ten definitywnie ustawiłeś jako wyjście, więc nie może działać.
1. Przycisków nie obsługuje się na przerwaniach portów. 2. Nie potrzebujesz do tego trzech przerwań - wystarczy przerwania timera i UART. 3. Nie zmieniaj priorytetów przerwań - jeden poziom zdecydowanie wystarczy. Nie potrzebujesz zagnieżdżania, a próbując je zrobić brniesz w ślepą uliczkę, bo 5. Ogólną zasadą jest, że w procedurze obsługi przerwania...
gmp wrote: Procek obsluguje poprawnie 4xmnijesze czestotliwosci od zegara. Dziwne, ale z dokumentacji wynika coś zupełnie innego. Mikrokontroler poprawnie rozpoznaje zmianę stanu (przy reakcji na zbocze) o ile stan ten trwa dłużej niż jeden cykl zegarowy. Przy czasach krótszych może wykryć albo nie. Pan Arkadiusz Krysiak w swojej książce o AT90S2313...
OK, mam nadzieję, że zegar ustawiłeś w opcjach. Ponieważ muszę wyjść, to dam Ci wskazówki, a resztę wymyślisz sam lub koledzy pewnie podpowiedzą. Gdy pierwsze zbocze drgania styku ustawi flagę przerwania i mikrokontroler wejdzie w funkcję jego obsługi, to zaraz na początku automatycznie kasuje (w tym mikrokontrolerze) flagę przerwania. Ty w swoim programie...
Witam, Przy takim podłączeniu jak pokazałeś na schemacie, nie zwierasz pinu do masy tylko podajesz na niego napięcie równe spadkowi napięcie na świecącej diodzie LED. Dla diody LED napięcie w kierunku przewodzenia wynosi około 1.8V natomiast zgodnie z karta katalogową dla ATTINY2313 maksymalne napięcie uznawane za logiczne "0" wynosi 0.3*VCC, czyli...
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...
Nie. Po każdej zmianie do RAMu. Kod jak 1. Jeśli programista uważa że wcale tego nie potrzebuje może sam przepisać zmienną volatile do jakiejś zmiennej lokalnej i operować sobie na tej zmiennej lokalnej a w pasującym mu momencie skopiować jej wartość do volatile ze wszystkimi tego konsekwencjami.
Spróbuj tak: [syntax=c]//GPIO_EXTILineConfig(GPIO_Por... GPIO_PinSource13|GPIO_PinSource15); GPIO_EXTILineConfig(GPIO_PortSourceGPIOC... GPIO_PinSource13); GPIO_EXTILineConfig(GPIO_PortSourceGPIOC... GPIO_PinSource15);[/syntax]
ATmega128 ma "tylko" 8 zewnętrznych przerwań i nie ma tam przerwania PCICR. Przerwania możesz deklarować poprzez nazwy rejestrów: ON INTX lub jak dla M168: ON PCIEX i dalej korzystać z normalnej składni Bascoma.
Menu opiera się na przerwaniach EXTI, które generuję za pomocą joysticka 5 położeniowego. I tu zakończyłem dalsze czytanie. Obsługa przerwań też skopana. Skasowanie flagi w warunku, który może się nie wykonać oraz na końcu przerwania? PS. Menu tworzy się inaczej Dodano po 1 Umieszczenie kasowania flagi tylko w warunku else powinno według mnie likwidować...
A nie widzę nigdzie innego użycia przerwań niż tylko przy wciśnięciu klawisza klawiaturki. Przerwania zewnętrzne mają wyjątkowo ograniczone zastosowania. Nadają się np. do tego, żeby obsługiwać sygnały od innych układów scalonych, świadczące o tym że dany układ ma coś ciekawego do powiedzenia. Do przycisków nadają się wyjątkowo słabo, bo żeby to działało,...
To systemowe przerwanie bedzie mialo mniejszy priorytet tylko w przypadku > 0010_1000 i nie bedzie podzialu na pre i sub priorytety ? Dokładnie tak. The combination of the group priority and the sub-priority is referred to generally as the priority. Grupowanie działa tylko na zewnętrznych przerwaniach i powoduje, że przerwania z tej samej grupy nie...
Wyświetlacz ma identyczne wyprowadzenia z tym że ten w projekcie AVT chyba nie ma podświetlenia a ten, który kupiłeś ma i trzeba je podłączyć żeby coś było widać. Zresztą są tam dwa piny do zasilenia podświetlenia. W twoim nowym wyświetlaczy to piny 15 i 16. 15 to + a 16 masa. Co do pilota to: "Program zapisany w procesorze można rozbudować np. dodając...
Prz zboczu narastającym odpal timer, i ustaw przerwanie na wyzwalanie zboczem opadającym. W obsłudze przerwania zatrzymujesz timere i odczytujesz wartośc oraz wyzerowujesz go przygotowując do następnego odczytu. Znając częstotliwośc zegara oraz wartośc prescalera i odczytaną wartość z timera znasz okres od zbocza narastającego do opadającego. Niby...
zależy co rozumiesz przez m-bus. Jezeli to cos do liczników energii to nie mam pojecia, jezeli mod-bus to tak. Nie rozumiem po co masz coś wykrywać. Od tego jest sprzęt. Jezeli chcesz programowo to robić to raczej proponuje nie używać przerwań zewnętrznych (bo będziesz dostawać fantomowe sygnały) tylko skanować z częstotliwościa kilka razy większa niż...
Pin D4 w wemos d1 mini nie nadaje się do obsługi przerwań zewnętrznych w wypadku korzystania z funkcji Serial.print() czy Serial.println() w programie. Funkcje te próbują "zapalić" diodę LED na płytce (BUILTIN_LED), która jest podłączona do pinu D4, co powoduje wygenerowanie nieokreślonej liczby przerwań wskutek chaotycznych zmian stanu na tym pinie....
Witam . Zadanie jest trywialne . Potrzebujesz 3 zmiennych i dwóch przerwań zewnętrznych plus przerwanie do wyświetlacza. Po starcie procka ustawiasz wartość jednej z zmiennych która będzie równa ilości przerwań wyświetlacza w czasie 10 sekund . Podczas aktywacji przerwania od T1 aktywujesz przerwania od INT0 i INT1 . INT0 zwiększa jedną zmienną a INT1...
Sądzę, że najlepiej będzie jak podłączysz ten kabelek do bazy tranzystora(np.BC548B) przez rezystorek o wartości rzędu np.10k(lub troszkę mniej). Dzięki temu kabelek będzie mógł być jeszcze podłączony do innych urządzeń. Skorzystałbym w procku z przerwań zewnętrznych - INT0 lub INT1. Prawdopodonie mimo wszystko mógłbyś podłączyć bezpośrednio, o ile...
Oj przeczuwam kłopoty, piszesz że przesiadasz się z małego AtMega na AtMega128, a tam niektóe rejestry mają zmienione nazwy lub wręcz niektóre bity są w innych/nowych rejestrach. dla AtMega8..32 działa coś takiego #define GLOBAL_INT_ENA()asm("se... #define GLOBAL_INT_DIS()asm("cl... #define INT0_ENA()...
Diody masz podpięte bezpośrednio pod porty ATmega? Jeśli tak to lepiej dołóż sobie oporniki aby nie spalić wyjść ATmegi. Bezpośrednio przy procku daj kondensator 100nF. Przed stabilizatorem np. 1000uF, a za stabilizatorem 100u (to i tak za dużo, ale lepiej więcej niż za mało). Zliczanie zrealizowałbym w taki sposób: - Odpalić któryś z wewnętrznych timerów...
A jakby tak zapytać google? https://www.google.pl/#q=interrupt+contr...
... natomiast w trybie synchronicznym linia TxD służy do wysyłania danych, a RxD służy do wysyłania impulsów synchronizacji. Jest dokładnie na odwrót - RxD to wysyłanie/odbieranie, a TxD to zegar. Zwróć uwagę, że zegar jest zawsze generowany przez procesor - zarówno w trybie nadawania, jak i odbierania. W jaki sposób urządzenie odbierające transmisję...
Gniazdo jest całe, nic mu nie dolega (delikatne kiwanie nie powoduje przerwań i trzeszczeń) To nie oznacza że gniazdo jest całe. Jak je sprawdziłeś?
Zły pomysł, zły kod. Użyj jednego timera w trybie zliczania impulsów zewnętrznych i podłącz wyjście wentylatora do jego wejścia. Drugi timer zaprogramuj na zgłaszanie przerwań co 1 sekundę (timer 0 tego nie potrafi), w procedurze przerwania odczytaj wartość licznika, wyzeruj licznik i wyświetl wartość. Nie jest to idealne rozwiązanie, ale o niebo lepsze...
:) Kto szuka nie (ten) błądzi. Dzięki za cierpliwość. Na chwilę obecną przyjmę to za pewnik. Temat jednak pozostawiam otwarty. Jeśli ktoś z czytelników rozumie mą rozterkę i potrafi mi wyjaśnić dlaczego tak a nie inaczej...to proszę się nie krępować :D PS Szczerze mówiąc dziwi mnie trochę to, że Ciebie jako fana logiki nie zastanawia pozorna bezsensowność...
W kwestii formalnej, ten kod się nazywa kodem Gray'a (od nazwiska Franka Gray'a 1887-1969, pracownika laboratoriów Bella, który go opracował) Co do samego problemu, to - prędkość obrotową wyliczysz z jednego kanału mierząc ilość impulsów w jednostce czasu lub mierząc czas trwania jednego okresu i przeliczając to na obroty (wiadomo ile masz impulsów...
Normalna praca sterownika PLC polega na cyklicznym wykonywaniu: odczytu wejść, sekwencji kolejnych rozkazów składających się na program oraz ustawieniu wyjść. Wyobraź sobie taki ciąg rozkazów umieszczony w OB1: 1. A = 1 2. B = 2 3. CALL FC1 4. B = 1 5. A = 2 6. CALL FC1 Wewnątrz FC1 zawsze zmienna A <> B. Podprogram (FC1) jest wykonywany tylko...
Jeżeli końcówka ma robić jako wejście, używasz słowa pinx.y . Dotyczy to także polecenia alias - które jest tylko informacją dla kompilatora, żeby wstawić w miejscu gdzie występuje przypisane przez nas słowo - oryginalną nazwę portu / pinu. Tak więc powinno być wl1 alias pinc.0 wl2 alias pinc.1 Poza tym polecam stosować może trochę mylącą na początku...
Wcale nie jest łatwo. Co z tego, że odblokujesz przerwania? Nic nie gwarantuje, że w czasie pomiaru przerwania wyjdą tak jak w rzeczywistym układzie. O ile przy korzystaniu wyłącznie np. z przerwań timerów układ jest w miarę deterministyczny, to przy jakichkolwiek przerwaniach od zdarzeń zewnętrznych już nie i pomiar nic nie jest wart. Kolejny problem...
Proponowałbym również modyfikację układu pod kątem alternatywnych funkcji pinów. Wspominałeś, że chciałbyś poćwiczyć na początku miganie diodami i sterowanie przyciskami. W porządku, jednak szybko to opanujesz i apetyt wzrośnie :) Po opanowaniu zwykłego sterowania diodami, myślę że rozsądnie byłoby zaznajomić się z obsługą przerwań, która jest kluczowa,...
Osobiście gdybym musiał wykonać taki projekt Attiny2313, i wybudzać go za pomocą zewnętrznego przerwania, to zamiast 555 dałbym Attiny13A. Przykładowo możesz go uśpić na 8 sekund, wybudzenie watchdogiem żeby zwiększył stan zmiennej i znów poszedł spać, w przypadku odpowiedniej jej wartości wygenerował przerwanie.
Witam, dołączę się do tematu aby nie zaśmiecać forum. Moim problemem jest drganie styków przycisku aby wywołać przerwanie int2. Przyciskiem włączam i wyłączam optotriak MOC3041 który z kolei załącza sterownik lampy sodowej 70W przez triak. Problem jest taki: mimo, że zrobiłem programową obsługę drgań styków to działa ono jedynie bez obciążenia - czyli...
Witam Mam mikrokontroler LPC2148 i skonfigurowane przerwanie zewnętrzne aktywowane zboczem. Pin aktywujący przerwanie jest podciągnięty do +5V przez rezystor 10k. Problem polega na tym, że dotknięcie tego pinu czymkolwiek czasem powoduje wygenerowanie przerwania, zwarcie do masy również a wiec łapie wszystkie zakłócenia. Kondensator 3.3n dołączony również...
mam maly problem.. zdarza sie ze moj układ oparty na ATmega 32 jakby sie zawieszał... wykorzystuje przerwanie zewnetrzne... // External Interrupt(s) initialization // INT0: On // INT0 Mode: Rising Edge // INT1: Off // INT2: Off GICR|=0x40; MCUCR=0x03; MCUCSR=0x00; GIFR=0x40; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x01; a w programie...
Szanowni Panstwo: Pisze swoj pierwszy wiekszy projekt na 89s52 i mam pewna watpliwosc. Jakos nigdzie tego nie moge znalezc. Powiedzmy, ze nastapi przerwanie, ale zezwolenie na to przerwanie zostanie wylaczone zanim samo przerwanie zostalo obsluzone. Czy wtedy przerwanie bedzie obsluzone czy nie. Chodzi o przerwanie zewnetrzne, czyli odpowiednia flaga...
witam chcę zrobić obrotomierz na atmega16 mający dwa wejścia, oraz kontaktujący się z PC przez rs232. Impulsy z przerwań są zliczane przez czas 1 sekundy a następnie przemnażane przez 60 i wyświetlane na wyświetlaczu. Po wyświetleniu chce je przesłać do PC, gdy to robię wartość pomiaru jest zaniżana na lcd oraz PC. Np z włączonym przesyłaniem prędkość...
Tak, to też dobry algorytm. Możnaby zawsze skanować wszystkie, wrzucać je do pamięci (np. zrobić 4 rejestry flag eINTFR0..3 po 8 flag). Co nam to daje? Np. to, że wywołanie przerwania eINT_0 może powodować zmianę priorytetów. Czyli w zależności od zdarzenia możemy różnie traktować przerwania. Ciekawy pomysł! Obecnie mikrokontrolery z wbudowanymi układami...
1. INT0 i INT1 muszą być skonfigurowane jako wejścia (DDRD). Nie znam schematu, ale można też podciągnąć je wewnętrznie do plusa (PORTD). 2. Testowanie w takim układzie należy wykonać ściągając wejście do masy, bo taki sygnał jest na wyjściu detektorów TFMS przy odbiorze paczki impulsów.
Kolego bikemc temat już chyba poruszałeś... ? http://www.elektroda.pl/rtvforum/topic91...
A wchodzi w przerwanie w ogóle? Nie używam SPLa, także nie do końca wiem co się włącza co nie... No i daj czyszczenie flagi przerwania gdzieś wcześniej niż sam koniec handlera. pzdr.
http://obrazki.elektroda.pl/2475395200_1... Cześć! Pewnie część czytelników jest już znużona ilością tematów o zegarach nixie, ale nic nie poradzę na to, że ja także poddałem się magii tych cudownych wyświetlaczy minionej epoki. ;) Mogę tylko uspokoić, że jest to moja autorska konstrukcja, a nie kalka istniejącego projektu. Zdaję sobie...
Witam! Mam taki dość nietypowy problem. Kontroler ma reagować na jedno z trzech przerwań: TIMERa 0 i dwóch zewnętrznych (czujki ruchu). Te przerwania zewnętrzne zliczają liczbę reakcji czujek, natomiast TIMER 0 ma odmierzać czas i dzięki niemu co kilka sekund mają być wyświetlane statystyki. Bez TIMERa 0 wszystko działa ok, ale statystyki lecą cały...
Dokladnie, musisz ustawic stos. U mnie struktura wygladala tak .include "m8def.inc" .org 0x00 rjmp reset RESET: ldi R16,low(RAMEND) out SPL,R16 ldi R16,high(RAMEND) out SPH, R16 main: rjmp main
Uśpiony procek się "nie rusza" więc nie może nic wykonać póki się nie obudzi :)
Stosy to dla mnie czarna magia, wiem tylko, że każdy przeskok wymaga zapisania adresu zwrotnego, ale nic poza tym :oops: No przy takim podprogramie to 1 megabajtowy stos to za mało :D, to się chyba nazywa rekurencja: [syntax=basic4gl]Petlapomiarowa: If Impulsy < 15 Then 'Jesli nie ruszono, wyswietlaj dalej napiecie Gosub Pomiaradc If Konwersja >...
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ą...
kalkulator przerwań wykonywanie przerwań wyłączanie przerwań
pioneer surround moeller xcomfort kamera pamięć flash
Kod P2 na podzielniku ciepła Ista - znaczenie i rozwiązania Objawy niskiego poziomu oleju w skrzyni biegów – manualne i automatyczne skrzynie, diagnostyka OBD-II