A może spróbuj tak: jedne impulsy zliczaj przerwaniem np. INT0, a drugie impulsy przerwaniem InputCapture - wtedy przy wystąpieniu przerwania sprzętowo zapamiętywana jest wartość licznika zrób dwie procedury obsługi przerwań SIGNAL dla INT0 - czyli bez możliwości obsługi innych przerwań w tym...
Witam. W dokumentacji od atmega168 jest tak: 0x0006 jmp PCINT0 PCINT handler to chyba jest wektor przerwania od PCIE0 więc wygląda na to że jest to obsługiwane w bascom w takiej właśnie postaci jak napisałem poprzednio.Dla atmega168 przyjmuje mi kompilator wszystkie 3 przewidziane czyli PCINT0,1,2,...
Witaj Pojęcie o budzeniu procka masz raczej wątłe, przecież procek budzi się tylko przerwaniem... a dokładniej jednym z bardzo niewielu (watchdog, przerwanie zewnętrzne, otrzymanie danych...) Jeśli poczytasz pdfa to dowiesz się jak wybudzić procka, szczególnie dobrze jest to rozpisane dla M128. Uprzedzam...
Kompilator mówi, że nawet coś takiego jak SP, czy SPL nie istenieje w tym procku :cry: A co do rozkazów rcall to przecież też korzystają ze stosu. Więc skoro w prostym miganiu działa to znaczy że ogólnie ten 3 stopniowy stos chyba trybi. ______________________________...
Błąd polegał na tym, że przy ISC10 zamiast przesuwania bitów było porównanie, ISC10=2 a więc relacja była spełniona i przyjmowała wartość 1. Co do wszystkich rad dotyczących kasowania i ustawiania bitów MCUCR i innych - mają one sens, ale dopiero po wstępnym wpisaniu tam jakiejś wartości. Mimo, że...
Witam. Podłączyłem klawiaturę do uc, naciśniecie przycisku powoduje zmianę stanu wejścia PD2 przez co uc wskakuje w przerwanie. W nim sprawdza po kolei który dokładnie przycisk jest wciśnięty poprzez podłączenie wyjść switchy do GND co ma spowodować spadek napięcia na PD2 czyli logiczne 0. W przerwanie...
Dziękuję za odpowiedź. Czyli mam wpisać coś takiego?: [syntax=c]GIFR |= 1<<INTF0;[/syntax] oraz [syntax=... |= 1<<INTF1;[/syntax] A tutaj program po poprawie: [syntax=c]volatile unsigned int turn_count = 0, ad_count = 0; ISR(INT0_vect) { turn_count++; } // zewnętrzne...
Wziąłem sobie Wasze uwagi do serca, choć nie wiem, czy dobrze je zrozumiałem. Kod wygląda teraz tak: Xury , do mnie trochę jak do dziecka, ale zapewne chodzi Ci o błąd w postaci zapętlenia podprogramów? Po dokonaniu w/w zmian, objętość kodu wzrosła o około 30%, rozumiem już, co miałeś na myśli...
Bawię się ostatnio wspomnianym w tytule mikrokontrolerem i natknąłem się na problem z zewnętrznymi przerwaniami, którego nie potrafię obejść. Zaczynając od tego co działa: układ jest sprawny na pewno, jest podłączony, cały czas hula dioda sterowana przez timer z ustawionym przerwaniem na przepełnienie;...
Stworzyłem kod konfiguracji zewnętrznego przerwania EXTI0 na PB0, reagującego na zbocze opadające. Niestety nie chce on działać. Próbuję już to uruchomić od wczoraj, niestety bez skutku. Czy mógłby mi ktoś wskazać w którym miejscu popełniam błąd. Program ma działać w taki sposób, że po wykryciu zbocza...
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!!
Zrób to inaczej - pin, który ma odpowiadać za generowanie przerwania zdefiniuj jako wejście z podciągnięciem do VCC czyli: DDRD &= ~(_BV(2)); PORTD |= _BV(2); wywołasz przerwanie zwierając pin do masy.
Nic nie wspomniałem, że używam dwóch przerwań jednocześnie. Po prostu chciałem zrozumieć działanie przerwań zewnętrznych, nie od timera, nie od czegokolwiek innego tylko i wyłącznie przerwanie zewnętrzne. Napisałem, że wiem jak używać testowania przycisku przez przerwanie od timera, notabene SysTicka. Chciałem...
Jeżeli Atmega1280 ma kwarc 16MHz to czy w świetle powyższego znaczy, że zewnętrzne przerwanie INT0 może być wywołane nawet 16 razy na mikro sekunde? Odpowiedź krótka: nie. Odpowiedź długa - to zależy. :) Zależy od tego, co rozumiesz przez wywołanie przerwania 16 razy na sekundę. Nie da się obsługiwać...
Witam 1. Jeżeli na jednej linii bezpośrednio podłączysz sygnał sterujący wyświetlaczem i sygnał z układu generującego przerwanie może to powodować pewne komplikacje. Gdyż podczas wysterwowywania wyświetlacza z mikrokontrolera, może pojawić się sygnał z układu generowania przerwań i zakłócić prawidłowe...
Witam, próbuje od paru dni przypisać statycznej metodzie obsługę zewnętrznego przerwania. W przypadku gdy statyczna metodę umieszczę bezpośrednio w obsłudze przerwania wszystko działa poprawnie: [syntax=cpp] class GPIO { public: static void EXTI_0(void); private: }; void GPIO::EXTI_0() { } extern...
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ę...
Witam! Mam problem ze zrozumieniem działania zewnętrznych przerwań w mikrokontrolerach atmega (avr). Dla przykładu posłużmy się konkretnym osobnikiem - Atmega48. W specyfikacji (strona 64) wyróżniają dwa przerwania INT0 i INT1 i dodatkowo 24 - PCINT23..0. Te 24 przerwania są podzielone na 3 grupy...
Procedury przerwań zewnętrznych: Dodano po 1 z tego co wiem, w ISR pozostałe przerwania są wyłączane, czy mam rację ? nie istnieje więc chyba możliwość, że odpala się za dużo przerwań i łącznie za dużo rzeczy odkładanych jest na stos ? Swoją drogą wywołanie takie prostego ISR z jedną linijką...
Witam! Napisałem programik którym liczę ilość cykli procesora pomiędzy dwoma punktami programu, na zasadzie obliczenia różnicy pomiędzy dwiema wartościami licznika Timera1A ustawionego z preskalerem 1. Niedawno potrzebowałem zmierzyć ile cykli potrzebuje uC od momentu wystąpienia przerwania, a...
DEX - no cóż dlatego, bo taki układ już jest i nic nie da się teraz zrobić. Kolumny i wiersze są podpięte bezpośredni pod wymienione porty.. Więc bezpośrednie wykorzystanie zewnętrznego przerwania nie wchodzi w rachubę. mariuszlorenc - no wlasnie może o to mi chodzi, ale jak to się robi, bo to moje...
>>> DrDead, w szczególności chodzi tu o to że jeżeli bezkrytycznie posłuchamy rady, jak to robi Kol. asembler: 'ja stosuje taką zasada: zawsze w obsłudze przerwania na początku odblokowywuje przerwania globalne' to: 1) ryzykujemy że nastąpi blokada wykonywania przerwań o wyższym priorytecie gdyż...
Witam. Próbuję zrobić zwykłe zliczanie osób w pomieszczeniu. Mam dwie bariery świetlne, które są podłączone do pinów PD2 i PD3 czyli INT0 i INT1. Problem w tym, że przerwanie od INT1 nie chce mi zaskoczyć, natomiast INT0 działa. Dodam, że bariera działa dobrze: przerwanie bariery skutkuje podciągnięciem...
Kolejne pytanie z serii jak to jest i co radzicie ;)... Mam ATTiny 2313 i chce je podłączyć do USB - obsługa softowa za pomocą V-USB. Na domyślnym schemacie mam pin Data+ podłączony do zewnętrznego przerwania INT0, które ma priorytet przed INT1. Co się stanie jeżeli w momencie komunikacji po USB...
Witam, napisałem obsługę zewnętrznego przerwania, które się wykonuje bezproblemowo, jednak po obsłużeniu przerwania program nie wraca od razu w miejsce z którego przerwanie zostało wywołane. Oto kod: [syntax=asm].INCLUDE "m16def.inc" .DEF acc = r16 // akumulator .EQU SYS_FREQ = 1 .CSEG .MACRO...
Witam serdecznie, W bascomie, w chwili wystąpienia zewnętrznego przerwania na jednym z pinów obsługujących takie zdarzenia, program skacze do podprogramu obsługującego przerwanie, po czym wraca do miejsca w którym aktualnie wykonywał się program w chwili jego wystąpienia. Czytałem że można przestawić...
Witam Własciwie to mam na początku dwa pytania , pierwsze to : Konfiguruje port d jako wejscie z podciąganiem do plusa i potem w programie sprawdzam czy przycisk jest wciśnięty Sbis pind,6 Rcall podprogram i tu pytanie w AVR studnio podczas symulacji symulator zachowuje się tak jakby przycisk...
Witam Czy jest możliwe wywzolenie zewnętrznego przerwania na zbocze opadające/narastające na porcie innym niż INT0/INT1? Jeśli tak to jak? W dokumentacji doczytałem się że wyzwolenie przerwania na zbocze opadające/narastające jest możliwe tylko na INT0/INT1 natomiast wyzwolenie przerwań na innych...
Witam wszystkich, to mój pierwszy post na forum :) Od niedawna bawię się w programowanie AVRów. Zaprogramawałam na Atmedze16 coś w rodzaju programowanego termometru, tzn. aktualna temperatura jest mierzona przez czujnik DS18B20, porównywana z zaprogramowaną wartością, i jeśli zajdzie odpowiednia zależność...
Witam, mam problem z zewnętrznym przerwaniem, mianowicie testując je na symulatorze z avrstudio okazuje się że pierwsze przerwanie powoduje że funkcja obsługująca je dwa razy się wywołuje a następnie powrót następuje pod adres 0x0, a nie do miejsca w którym wystąpiło przerwanie. Poniżej zamieszczam kod....
Uff, pokombinowałem, znalazłem na stronie atmela przykładowy kod w asemblerze do obsługi dwóch przycisków przerwaniami i nareszcie mam jakiś sensowny wynik. Konfigurację przerwań zmieniłem, i wrzuciłem w dobre miejsce. Godziny i minuty mogę już ustawiać, więc uznaję, że program działa :). Dziękuję...
Witam! (Dobry wieczór?) Przeczesałem "cały internet" i znalazłem wiele rozwiązań mojego problemu, ale żadne spośród tych, które zastosowałem nie przyniosło oczekiwanych rezultatów. A problem - może się wydawać - jest banalny, gdyż chodzi o obsługę zewnętrznego przerwania ze zwykłego tact switcha. Mikrokontroler...
Witam, Zabieram się do oprogramowania czujnika ultradźwiękowego SRF04 podpiętego do avr'ka AT90CAN128. Czujnik dokładnie taki: Muszę zwrócić wartość w centymetrach od przeszkody. Zatem potrzebne będzie wg mnie użycie zewnętrznego przerwania i użycie timera. Koncepcję mam na razie taką, że pulsuję...
Witam, Pierwsze pytanie dotyczy sposobu podłączenia. Wg. schematu powinienem podciągnąć wyjście do zasilania min. 3.8V. Niestety układ F28027 pracuje tylko do 3.3V. Robiąc próby z zasilaniem 3.3V, czujnik działa, jednak zastanawia mnie tylko czy nie będą duże przekłamania? A może podpiąć wyjście do...
wystarczy że zainicjujesz magistrale i2c dopuki nie wydasz komendy o jej zatrzymaniu wszystko będzie chodzić normalnie i powinno grać poza tym w pętli głuwnej możesz sprawdzać stan pcfa i wsztstko bedzie grało nie zapomnij o zezwoleniu na obsługe zewnętrznego przerwania poza tym do czego innego chcesz...
Oczywiście działa. Dzięki za pomoc. Tą zasadę znam (albo mi się tak wydaję) ze sterowania klawiszami podpiętymi do portu uC. Nie jestem w sensowny sposób wytłumaczyć dlaczego byłem pewny, że w momencie inicjalizacji zewnętrznych przerwań charakterystyka danego wejścia się zmienia na wejściowe??
Nie mam już siły do tego przerwania INT0. Co bym nie wpisywał aby go wyłączyć ono i tak jest aktywne. Teraz mam taki program: [syntax=basic4gl] $regfile = "attiny44.dat" Config Pinb.2 = Input 'przycisk Portb.2 = 1 Config Portb.0 = Output ...
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...
Witam wszystkich!!! Mam programik na którym próbuje zrozumieć przerwania zewnętrzne i nie moge pojąć :D . #include <REG420.H> #include <stdio.h> #define OKRES (-46080) unsigned char volatile tim = 0; unsigned char volatile licznik0 = 0,...
Więc - na przykłądzie przerwania zewnętrznego: 1. Musisz zdefiniować w wektorze przerwań skok do obsługi tego przerwania którego chcesz używać - np. przerwanie zewnętrzne INT0 .cseg .org $0000 rjmp start ;Reset handler .org INT0addr rjmp ext_int0 ;External interrupt handler 2....
Witam wszystkich, mam problem z obsługą przetwornika MAX1301 przez Atmege 32. Mianowicie przetwornik ten posiada 3 tryby pracy. W dwóch sygnał zegarowy podawany jest z zewnątrz, dokładniej przez linię SCLK interfejsu SPI. W trzecim trybie sygnał zegarowy podawany jest na przetwornik tylko podczas przesyłania...
Otóż zliczam czas na timerze 2 i co 1 sekundę generuje mi przerwanie obsługiwane w procedurze signal. Jednak gdy jestem w menu które wywoływane jest za pomocą przerwania: ISR_BLOCK, czas nie jest liczony. Jak zrobić by priorytet przerwania Timera2 był większy niż przerwania zewnętrznego. Nie mogę ustawić...
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...
Jedyne co możesz zrobić w tej sytuacji, to nie zmieniać programu, a w miejsce S4 podłączyć S1. Dlatego, że korzystasz w tym przypadku z przerwania zewnętrznego EINT2, które to nie jest dostępne (ani żadne inne przerwanie zewnętrzne) na pinie do którego podłączony jest klawisz S1. Możliwość przełączenia...
Witajcie moi drodzy Zapraszam na kolejną część mojego tutoriala PIC18F2550 i kompilatora SDCC . W tej części zademonstruję jak używać wyświetlacza 7-segmentowego z PIC18F2550 . Kod obsługi wyświetlacza będzie oczywiście napisany w oparciu o przerwania i timery . Cały proces powstawania...
Witajcie!! Mam taki problem: ponizej załączam mój plik źródłowy main.c , programik jest prosty, zawiera dwa przerwania jedno od timera 0 (przerwanie na narastajace zbocze CAP0.0 pin P0.2) drugie przerwanie to przerwanie zewnetrzne od przycisku (przerwanie na narastajace zbocze). Do pinu P0.2 dołączam...
Witam. Mam drobny problem i nie wiem jak go ugryźć. Atmega32 kwarc 16mhz W przerwaniu odczytuję klawiaturę ps2 i w między czasie robię wyświetlanie na matrycy w Timerze z preskalerem 64. I jeszcze mam uruchomione PWM. Jesli wyświetlanie zrobie w pętli głównej i wyłaczę timer to klawiatura czyta...
Witam. Mam problemik i bardzo prosze o pomoc. Robie projekt, w którym za pomocą USARTA chce zapisywać i oczytywać rejestry układu Wiznet (traktowany jako pamięć zewnętrzna). Problem polega na tym, że interfejs pamięci zewnętrznej działa ok do momentu, kiedy układ nie obsługuje przerwania. Po powrocie...
Chyba trochę skpmplikowałes swoje urządzenie... Licznik T0 już po 2 cyklach włącza przerwanie :!: Ma dodatkowo wyższy priorytet, niż przerwanie zewnętrzne, które uruchamia ten licznik! PRZERW_INT0: SETB TR1 SETB TR0 POP ACC POP ACC MOV A,#jakies_miejsce PUSH ACC MOV...
Witam ! Wydaje mi się, że chodzi tu o rozróżnienie przerwań zewnętrznych od wenętrznych inny skok przy przerwaniu wew. a inny przy zew. W programie obsługi trzeba poprostu sprawdzać skąd przychodzi przerwanie i odpowiednio skskać. Obsługa klawiatury z przerwania nie jest dobrym pomysłem. ...
Z tego co wiem to w ATmega-ch raczej trudno o możliwość zliczania impulsów z 3 niezależnych źródeł zewnętrznych i generowania dla każdego z osobna przerwania (chyba że powyżej ATmega32, ale w grę wchodzi wtedy wysoka cena). Pytanie czy konieczne jest takie rozwiązanie jak zaproponowałeś? Przy pracy uC...
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...
Witam Po przesiadce na C umęczyłem taki program, ale dalej coś nie teges? Przerwanie wykonuje się 128 razy ale tylko Y się zwiększa. Jeżeli te sprawdzenie IF od stanu 0 na pinB.3 jest złe to i tak przerwanie powinno się wykonać 256 razy. Bo mam na tym porcie 128 impulsów "0" a przerwanie powinno się...
Bez przerwań nie da się zrobić absolutnie niczego, co jest bardziej skomplikowane. Dzięki zastosowaniu przerwań mikrokontroler nie musi stale sprawdzać, czy zaszło jakieś zdarzenie. Ciągłe sprawdzanie czegoś takiego (ang. polling) spowolniłoby program. Ponadto kolejny kłopot to odczytanie danej flagi...
ok nie wiem czy dobrze zrozumiałem. może być np tak? tablica: db 00001001b, 00010010b, 01001001b ;przykładowo MOV DPTR, #tablica MOV A, #2h ; numerowanie od 0 jak w C ??? MOVC A,(at)A+DPTR MOV P1,A taki kod ustawi mi na P1 01001001b? Z modulo już sobie przypomniałem ;) Dodano po...
Konfigurujesz przerwanie zewnętrzne: dim flaga as bit config portd.4 = output 'przykładowo na ten pin reset portd.4 Config Int0 = Rising Potem On Int0 przerwanie Enable Int0 Enable Interrupts gdzies w pętli: If flaga = 1 then set portd.4 = 1 waitms 10 reset portd.4 ...
Witam, chciałem podłączyć pod ATmegę 4 enkodery z myszek PC. Znalazłem taki kod w sieci: * * ENCODER - Checks rotary encoder and returns the following: * * 0: no movement * -1: ccw rotation * 1: cw rotation * *---------------------------------------...
Mam pytanie w związku z zewnętrznymi przerwaniami. Czy można wykryć czy przerwanie zostało wywołane przez PA0 czy PB0 bo widzę że zostały tu one wrzucone do jednego "worka" w EXTI trochę to dziwne jako, że wcześniej bawiłem się atmegami. Jeśli się da to proszę o jakąś wskazówkę.
sei powoduje odblokowanie przerwań procesora, ale nie ma nic wspólnego z przerwaniem pętli języka c. Do tego służy instrukcja break. Pamiętaj jednak, że pętla while wykonuje w kółko ciąg instrukcji ujętych w klamry, stąd też zewnętrznej pętli nie musisz przerywać - jej przerwanie spowoduje zakończenie...
Witam Do "kompletu" brakuje mi obsługi zegara DCF77. Tzn. uruchamiałem już wcześniej na Atmega8 i nie było problemów. Jednak przy tym układzie wykorzystuję Timer, przerwania - może konfiguracja jest zła ?. Timer0 - liczniki i flagi Timer1 - DCF77 Timer2 + INT0 - odbiór RC5 INT1 - przerwanie od...
Witam Poniżej załączam kod, który ma sterować wyświetlaniem informacji na LCD oraz zmianą koloru podświetlania. Niestety po upłynięciu czasu ( różnie, czasem kilkanaście minut, czas kilka godzin ) procesor zawiesza się i na LCD wszystko się zatrzymuje. Wstawiam tylko część kodu którą obsługuję RC5,...
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ę...
Witam! W ramach napisania programu do obsługi klawiatury na złączu PS/2 chciałem zapoznać się obsługą uart w przerwaniu wyzwalanym zewnętrznym sygnałem. Sam uart działał, poprawnie wysyłał znaki, same przerwania zewnętrzne także działały, natomiast próba wysłania pojedyńczego znaku w przerwaniu kończy...
Witam, Wykonując prosty sterownik dla projektu napotkałem na niespodziewane problemy. Układ składa się z Arduino Uno R3 + shield wyswieltacza i przyciski + zaprojektowanej i wykonanej własnoręcznie płytki to której dołączone są zewnętrzne moduły. Układ ma sterować siłownikiem elektrycznym, napięcie...
Pewnie nie da się już nic z tym fantem zrobić, ale jednak napiszę... Wczoraj robiłem sobie kopię zapasową wszystkich plików z dysku wraz z systemem, którą zapisywałem na dysk zewnętrzny, na którym miałem z 220giga danych. Pech chciał, że coś komp zdurniał i przerwał robienie kopii... Nic nie powinno...
Przepraszam że nie potrafię tego wyjaśnić ale to nie ja pisałem ten program. Mam taki kod:
Jestem w trakcie tworzenia licznika rowerowego z funkcją alarmu przeciwkradzieżowego. W cały układzie mam akcelerometr, który wykrywa większe zmiany przyspieszenia. Chciał bym żeby to wykrywanie odbywało się podczas wyłączonego licznika. Powerdown mode odpada ponieważ wyłączone jest praktycznie wszystko...
Witam. Tworzę mały projekcik i natrafiłem na pewną zagwózdkę. Na początku wprowadzenie co układ ma robić i jak działać. Układ składa się z części analogowej, tzn. dwóch detektorów tonu (LM567) odpowiedzialnych za detekcję "bitów" łącza fizycznego. Chodzi o to, że rozpoznają "swoją" częstotliwość...
Witam! Na wstępie chciałem zaznaczyć, że od niedawna dopiero poznaję procesory z serii ARM. Bardzo dawno temu miałem styczność z 51- jedynką i keilem. Moje doświadczenie w programowaniu C też nie jest oszałamiające, natomiast asembler na ARM jak na razie jest przeze mnie mało zrozumiany. Proszę o wyrozumiałość...
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...
Nie działa Ci, bo nie przeczytałeś dokumentacji... Flagi przerwań czyści się przez wpisanie do nich logicznej jedynki. Trochę może paradoksalnie to wygląda, ale ma swoje logiczne uzasadnienie. Chodzi o to, że czyszcząc flagi w ten sposób da się to zrobić o wiele szybciej i co najważniejsze -...
Witam. Natrafiłem dziś na problem z przerwaniem. Mianowicie mam DS18B20, LCD, UART i timery. Program wygląda tak, że temperatura z DSa jest wyświetlana na LCD, wszystko gra. Mam też przerwanie, w którym co sekundę wysyłane jest 6 bajtów do kompa (przez UART). Przerwanie jest od Timera co 1 sekundę....
Witam, Mam pytanie odnośnie obsługi przerwań w mikroprocesorze Atmega16. Procesor ten ma możliwość pracy z trzema przerwaniami zewnętrznymi. Powiedzmy, że aktywuję wszystkie trzy przerwania. Występować one będą średnio co 3,33ms i będą spowodowane detekcją zera na trzech kolejnych fazach zasilania...
Przerwania PCINTx wykonują się przy każdej zmianie stanu logicznego, niema możliwości konfiguracji np. tylko dla zbocz narastającego lub opadającego. Stan zbocza na poszczególnym pinie sprawdzasz w przerwaniu. Attiny13 ma 6 pinów PB.0-PB.5 (PCINT0 do PCINT5) które mogą wywołać przerwanie. I tu jest jedna...
Koledzy, uczę się na płytce od KAMAMI ZL31 z prockiem STM32F103RB. Idę zgodnie z książka jednak nie mogę uzyskać innego przerwania jak od portu A. Program kompiluje się bez błędów. PB1 PB2 wyjścia PP Jeżeli debaguje na procesorze to nie jest już OK. W podglądzie przerwań konfiguruje się...
spróbuj tak: (...) Próbowałem i to samo. A nawet metoda gdzie najpierw przeładowuję timer a potem czyszczę flagę wydaje mi się mniej poprawna bo jeśli zbocze "napędzające" timer wystąpi pomiędzy tymi dwoma operacjami i w tym momencie mi ustawiło flagę od timera to sobie ją wyczyszczę i już drugi raz...
Witam! Przybywam z kolejnym problem mianowicie chciałem dziś aktywować sobie Automatyczne ryglowanie drzwi, DDS oraz wspomaganie ruszania na pochyłości. Podczas zapisu odruchowo przekręciłem kluczyk na off No i się stało :D DTC wypluł błędy: ===PCM DTC Brak=== Pomyślny odczyt DTC, nie było kodów...
Po pierwsze, żeby coś napisać w C musisz podciągnąć bibliotekę z predefinicją danego procka, chyba DS89C450.h lub jakoś tak. Włączyć opcją #include "DS89C450.h" do pliku Teraz grzeczenie otwóż ten plik i poczytaj co i jak ma ten procek w C dostępne :) czy jest to sygnał INT5 czy, co brak. Generalnie...
Witam Klawiatura zbudowana jest za pomocą sześciu przycisków monostabilnych, podłączonych do portu PF0-PF5. Równolegle z każdym przyciskiem jest włączony kondensator elektrolityczny o pojemności 1µF w celu eliminacji wpływu drgań styków. Aby nie odczytywać stanu linii cały czas, zdecydowałem...
Atmega jest taktowana zewnętrznym kwarcem 12MHz, żeby jeden tick timera trwał ~1us. 1. Czy timer 8-bitowy przyjmujący zewnętrzne impulsy, może je przyjmować w takich samych odstępach czasowych jak 16-bitowy? Niestety na etapie projektowania nie zauważyłem, że żeby użyć 16-bit timera do przyjmowania...
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,...
Z tego co widzę to np. mega8 posiada obsługę przerwań zewnętrznych więc możesz do PD2 i PD3 (int 0 i int 1) podpiąć swoje switch'e do tych portów i w tablicy wektorów przerwań(początek .cseg) w miejscach odpowiednich dla tych przerwań użyć skoków do fragmentów kodu obsługujących je. Problemem może być...
Witam szanownych użytkowników, Programuję mikrokontroler ATmega32, mam problem z przerwaniem INT2, które po starcie urządzenia się odpala mimo, że nie puszczam sygnału wyzwalającego przerwanie. Ponieważ projekt jest za duży, żeby zamieścić go w całości zamieszczam tylko najważniejsze fragmenty,...
Chciałbym zrealizować u siebie w projekcie przerwania, w ten sposób, że odbieram dane z kompasu->przerwanie i kolejno na początek. Nie rozumiem dokładnie - chcesz, żeby po ustaleniu się danych w HMC58831 wystąpiło przerwanie w którym odczytał byś wskazaną wartość? Jeśli tak - to z tego co widzę masz...
Witam, z góry dzięki za pomoc otóż borykam się z następującym problemem muszę napisać program na atmegę 16 który korzystał będzie z 2 przerwań zewnętrznych INT0 oraz INT1 [syntax=cpp] void Start() { DDRD = 0b11110011; //konfiguracja pinu 2,3 jako wejście PORTD |= _BV(PORTD2); //ustawienie...
Musisz użyć przerwania zewnętrznego. Po pierwsze, uaktywnić je w rejestrze IE. Odpowiada za nie bit 0. Należy go ustawić. Podobnie, należy ustawić bit 7 w tymże rejestrze, aby włączyć system przerwań mikrokontrolera. Następnie, w zależności od kompilatora, musisz zadeklarować funkcję, która będzie obsługiwała...
Mam problem z uzyskaniem oczekiwanego działania przerwań INT0 i INT1. Procesor to ATMEGA 16 z zewnętrznym taktowaniem 16MHz. PD2, PD3 są skonfigurowane jako wejścia z podciągnięciem do 1. W obu przerwaniach jedyną czynnością jest inkrementowanie zmiennych zdefiniowanych jako volatile uint32_t. ISR(INT0_vect) { N_T++; } ISR(I...
Witam, chciałbym mieć przerwanie zewnętrzne na PE0 a cały czas cokolwike bym nie zrobił, przełączył, zmienił itd jest na PA0, moglby ktos rzucic okiem na kod i powiedziec co jest zle... wydaje mi sie ze w tym syscfg jest cos zrabane, albo nie chce sie ustawic etc... swoje wnioski opieram na tym ze...
:arrow: robię mały projekt: jeden słupek potrójnej sygnalizacji świetlnej, z przyciskiem, który będzie służył do zmiany długości cyklu świateł (jeden z pięciu predefiniowanych). :arrow: na chwilę obecną mam działające światełka, dodałem przerwanie przycisku (będąc świadomym jego prymitywności/braku...
Odzysk danych przy pomocy PhotoReca musiałem przerwać po kilku dniach. Skończyło się miejsce na dysku 500GB :-( .Najpierw program zainstalowałem na SSD, ale zaczął zapisywać na nim dane. Ze względu na to , że jest stosunkowo niewielki - jakieś 70 GB przerwałem go i program przerzuciłem 500 GB. Nie wiem...
Zmienna pomocnicza zmodyfikowana w programie obsługi przerwania powinna być widoczna w całym programie. Nie bawiłem się nigdy Tiny 13, więc moje spostrzeżenia mogą być mylne lecz uważam, że kolega zapomniał o istnieniu przerwań zewnętrznych INT. Gdybym pisał ten program to podałbym impulsy wejściowe...
...jeśli już coś robisz , to rób to dobrze , albo nie rób wogóle... Jeśli chcesz coś zrobić - zanim zrobisz to dobrze, musisz to zrobić jakkolwiek... ;-) ...inna szkoła. ...an external level interrupt, or an pin change interrupt can wake up the MCU. Czyli, że jeśli ustawiam zewnętrzne przerwanie na...
Mam problem z przerwaniem od Timera0. Chodzi o to by Timer0 zgłaszał przerwanie w trybie pracy z porównaniem. Jest to tryb Clear Timer on Compare Match (CTC). Licznik zlicza zdarzenia zewnętrzne i w momencie zliczenia do zadanej wartości ma zgłosić przerwanie i zacząc liczyć od zera. Aby to osiągnąć...
Witam, w dobrym kierunku idziesz, ale to ci nie zadziała bo jak? skoro na początku programu tylko raz ustawiasz piny klawiszy jako wejścia oraz pin przerwania INT0 też jako wejście. Więc co ma tutaj wymuszać stan niski na wejściu INT0? nic!. Aby ten sposób zadziałał - musisz jeszcze pomyśleć o...
Mam do zrobienia program o następującym działaniu: przerwaniem zewnętrznym (INT0) uruchamiam całą machinę - czas zaczyna być mierzony, kolejnym przerwaniem zewnętrznym (INT1) robię STOP, i w tym momencie wynik powinien być wyświetlony na wyświetlaczu LCD. Niestety jak chce odpalić program już na płytce...
Po kilkunastu godzinach kopiowania w DMDE (boot z usb z DOS z Win 98SE) skopiowalo sie niewiele ponad 2% dysku (ok. 10GB). Przerwałem operację i wrzuciłem do plikow systemowych sterownik usbaspi.sys bo stwierdziłem, że problem z powolnym transferem jest związany ze sterownikiem dla USB 2.0 (dysk zewnętrzny...
Mam taki problem, że zrobiłem projekt Odbiornika Morsa na ATmedze8. W oryginalnym projekcie jest kwarc 10 MHz, a ja użyłem 10.240 MHz gdyż taki miałem w domu, a sklepu elektronicznego w mojej okolicy nie ma. Jak podłącze ten odbiornik do komputera i z programu morsik coś wysyłam to np. "adrian" dekoduje...
Witam Mam niezrozumiały dla mnie problem z przerwaniami. Do tej pory ich nie używałem ale że rozwijać się trzeba pora i na nie. A więc mam kod jak poniżej (nie wklejam całego bo symulator nawet dalej nie dochodzi) i w momencie odblokowania przerwań "sei" a dokładniej w linijce ldi r17,0 nie wiem...
Witam Próbuję napisać obsługę pilota, który używa kodowania [url=]NEC. Następnie chcę przesłać kod na okno terminala za pomocą USART. Próbuję to realizować bez użycia funkcji typu delay_ms(), zamiast tego chcę użyć przerwań. Idea jest taka, że po pojawieniu się pierwszego zbocza od odbiornika podczerwieni,...
Cześć. Napisałem swój pierwszy program na przerwaniach, ale nie działa on do końca tak jak zamierzałem. Układ jest taki, że pod port B mam podpiętą diodę/diody, a pod wejście wywołujące przerwanie PD3 (INT1) mam podłączony oscylator o zmiennej częstotliwości w zakresie od 0 do +/- 30Hz. Program miał...