Ups... :oops: Przepraszam za wprowadzenie w błąd, nie zauważyłem tego: '89C2051' Nie pamiętam czy w Bascom'ie '51 jest jakieś konkretne polecenie do ustawiania sposobu obsługi przerwań (daawno go nie używałem), ale to powinno zadziałać: Set Tcon.0 Set Tcon.2 Po dodaniu tego gdzieś na początku programu przerwania zewnętrzne będą wyzwalane zboczem opadającym....
Do arturt134 Wyłączenie przerwania na czas odpowiadający pracy powiązanej z przerwaniem( oczywiście nie globalne wyłączenie przerwań, co byłoby po prostu odsuniętym przerwaniem bez zagnieżdżeń) jest dobrym rozwiązaniem. I skanowanie klawiatury zamiast przerwań też jest dobre. Ale nie mogę się zgodzić co do uniwersalności Twojego rozwiązania. Jest przejrzyste...
czy ten fragment kodu BUT1_RD() oznacza np. czytanie z portu wejściowego czy nastąpoiło zwarcie do masy konkretnego wejścia w mC? To zalezy jak sobie ja zaimplementujesz (but1 zadeklarowany na pinie A nr 4) może wyglądać: #define BUT1_RD() ( PINA&(1<<4) ) //przycisk aktywowany stanem wysokim lub #define BUT1_RD() ( (~PINA)&(1<<4))...
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 jest prosta, wystarczy spojrzeć na schemat zestawu...
Witam serdecznie, Zrobiłem sobie timer do silniczków rakietowych i chciałbym uzbroić go w jeszcze jedną opcję ale za bardzo nie moge sobie poradzic. Mianowicie chciałbym dodać możliwość przejścia w tryb nacisnij i odpal zamiast nacisnij i odliczaj. Tyle ile byłby przycisnięty przycisk enkodera, tyle trwałoby podanie napięcia na zapalnik. Mój kod: [syntax=C]...
Dziękuję, faktycznie coś się zmieniło :) Dodano po 1 Zwykle jak ktoś rozwiąże swój problem to nie pokazuje sposobu. Tutaj nic wielkiego nie odkryłem, szczywronek dzięki za wskazówkę :) Oto kod obsługi przerwań z przycisku na mojej płytce AND-TECH evb5.1 z AtMega644P: [syntax=c] /* * interrupts_test.c * * Created on: 15-07-2014 * Author: cwanish */ #include...
Przerwania nie blokuję. To poważny błąd. Jedno hasło: drgania styków. Wygląda na to, że całkowicie o nich zapomniałeś. Ile przerwań zostanie zgłoszonych podczas naciskania/zwalniania przycisku, jeśli nie będziesz ich blokował i w jaki sposób będziesz na nie reagował?
przerwanie przeciez jest wlaczone, bo sie wykonuje handler. chyba ze nie wiem co to znaczy wlacz EXTI... problem jest w tym zapisie do rejestru EXTICR
Cześć, Jest sobie arduino które odczytuje z kilku analogowych czujników i wysyła to przez usb. Stworzyłem taki programik w visual studio: jedno okno jeden label przyciski otworz port odczytaj i ostatni zamknij. [syntax=csharp]namespace WindowsFormsApplication1 { public partial class Form1 : Form { int zmienna1 = 0; public Form1() { InitializeComponent();...
1. Definiujesz stałe w pamięci RAM, zamiast w ROM. 2. Niepotrzebnie używasz przerwania WDT i portu. Wystarczy jedno przerwanie timera o częstotliwości rzędu 100 Hz, w którym sprawdzasz przycisk, odliczasz czasy i zmieniasz światła. Dzięki z podpowiedzi. Jestem w fazie modyfikacji programu. Na chwilę obecną, jak tylko przeczytałem i złapałem się za...
Witam wszystkich, Po dwóch a może trzech tygodniach poszukiwań znalazłem błąd. Nie odkryłem samodzielnie tylko znalazłem tu na forum : [url=]STM32 - I2C na przerwaniach Piszę w SystemWorkbench for STM32. Przy tworzeniu kodu w STM32CubeMX (czyli na bibliotekach HAL) program dodawał za mnie wszystko co potrzebne żeby działało podczas ekportu projektu...
Racja. Dlatego jedną, jedyną flagę przecież sprawdzam (w pierwszym poście jest kod o którym mówię). W przerwaniu ustawiam kilka zmiennych i między innymi też tą flagę ustawiam na warunek zakończenia funkcji samplującej. Nie chcę natomiast sprawdzać dodatkowej flagi od przycisku i stąd mi się wzięło to przeklęte przerwanie generowane przez przycisk.
No to wygeneruj w nim projekt z przerwaniami od peryferiali...
Witam potrzebuje taśmy power do telefonu k6 k33a48 gdyż została przerwana przy wymianie wyświetlacza. Nie mogę nigdzie dostać od k6 note jest inna. Lub czy jest możliwość jej naprawy albo czy od jakiegoś innego modelu będzie pasować. Guziki są dobre. Albo czy ktoś jest w stanie to naprawić? Dołączam zdjęcie
Witam mam bardzo nietypowy jak dla mnie problem z układem który ostatnio wykonałem. Mianowicie jest to centralka alarmowa oparta o uC ATmega16. Działa na tej zasadzie że pod wejście PB2(INT2) podpięty jest kontrakton (zwiera do masy) do którego przykładam magnes i albo rozbrajam albo uzbrajam centralkę. Z grubsza to wygląda tak: PB2(INT2) skonfigurowane...
Witam. Od dłuższego czasu próbuje napisać program do obsługi klawiatury 2x3 w przerwaniu. Sporo szukałem na ten temat i wszędzie wszyscy doradzali getkbd() no a mnie niestety to nie urządza :( program testuje na ZL3AVR ale zamieszczę schemacik a tutaj mój kod: $regfile "m32def.dat" $crystal = 8000000 Config Lcd = 20 * 4 Config Lcdpin = Pin...
Witam Mój problem wygląda tak: W przerwaniu(1) od przycisku wywołuje funkcję(2) która korzysta z przerwań od przycisków:] Wpisanie w jej kod EXTI_ClearITPendingBit(EXTI_Line5); nie daje wiele, przerwania nie są przyjmowane. Czy jest jakis posob zeby w funkcji(2) korzystac z przerwań od przycisków?
Mam tak: Dodano po 48 Przerwania na pinie PD0 nie działają ale już na pinach PD2, PE0 i PE3 tak. W STM32F105_107xx Datasheet.pdf jest tabelka z pinami i ich funkcjami. Dla PD0 jest w kolumnie Main function after reset wpisane OSC_IN, natomiast w pinach, które działają jest to odpowiednio PD2, PE0, PE3. Rzeczywiście w moim programie może być coś źle...
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...
Możesz dać gotowca jak masz i przeanalizuje to. Gotowca (źródła), który działa prawie identycznie (inne częstotliwości migania ale to drobny szczegół) jak Twoje założenia projektowe, masz u siebie na dysku. Jest to program demo wgrywany fabrycznie do płytek Nucleo i znajduje się w repozytorium programu STM32CubeIDE. Gdzie akurat u Ciebie na dysku jest...
Przejrzałem kilka schematów na Elektrodzie i w innych miejscach i próbowałem takie układy zasymulować na Falstad. Niestety żaden nie działał tak jakbym chciał. Nie znam się na programach symulacyjnych ale jestem praktykiem. Wymyśliłem więc takie rozwiązanie. Najprościej jest to zrobić używając przycisku ze stykami NO i NC. Bez problemu można takie...
Witam. Mam pewien problem którego nie mogę rozwiązać, mianowicie chodzi o przerwanie FIQ w kompilatorze IAR. Nie wiem jak ustawić mu adres procedury obsługi FIQ. W pliku main.c mam powiedzmy taką procedurę: __fiq __arm void fiq_handler (void) { while (!(U1LSR & 0x20)); U1THR = 0x0A; IO0INTCLR= 0xFFFFFFFF; VICADDRESS = 0;...
Witam, próbuje podłączyć do microblaze'a pojedynczne przerwanie bez kontrolera przerwań i nie moge sobie z tym poradzić. W jaki sposób powinienem podłączyć np przerwanie od przycisku na płytce. Chodzi o ustawienie połączeń i inicjalizacji w programie. Przykładowy kod, który u mnie nie działa: void myISR( void ) __attribute__ ((interrupt_handler));.....
W praktyce bardzo rzadko używa się przerwań od zmiany stanu wejścia - głównie służy to do wybudzania procesora z głębokiego uśpienia oraz do zgłaszania gotowości przez np. zewnętrzne przetworniki ADC. Grubym błędem jest na ogół używanie przerwań od przycisków, chyba, że dany uC ma sprzętowe filtrowanie stanów wejść.
Witam. Chciałbym przerwać przewód przycisku starty&stop w citroenie c4 picasso mk2 2013 rok produkcji i wstawić tam ukryty wyłącznik. Poszukuję schematu przewodów które są tam doprowadzone i do jakiego miejsca podłączone. Najchętniej przerwałbym od przekaźnika rozrusznika. Poszukiwania trwają od kilku dni. Proszę o pomoc. Pozdrawiam.
Piszę program na ATtiny2313 w AvrStudio. Mam najnowszą wersję kompilatora, podobnie jak WinAvr'a. Kod będzie "mrygał" zestawem diód. Na porcie przerwania jest przycisk, którym będzie można zwiększać wartość opóźnienia, z jakim mają się zapalać diody. Program reaguje na samo przerwanie #include <avr/io.h> #define F_CPU 1000000UL #include <util/delay.h>...
I nie chodzi o systicka! Dajcie już spokój. Pytanie brzmi, jak zrealizować moje założenie działania programu. Obojętnie czy to systick czy przerwanie od przycisku, czy czego jeszcze. Chciał bym żeby po przerwaniu program od razu startował w nowym efekcie.
Witam. Wiem, że podobne problemy był już wałkowane milion razy lecz nie mogę sam sobie z tym poradzić. Do rzeczy: Chcę aby po przyciśnięciu przycisku dioda zapaliła się po pewnym czasie na krótką chwilę. Chcę to wykonać na przerwaniu, zależy mi na precyzyjnie odmierzonym czasie od momentu naciśnięcia przycisku do zapalenia się diody. Czas palenia się...
Wystarczy 2 przekaźniki 2 torowe. To jest najprostsze do wykonania i pewne w działaniu. Najprostsze do wykonania to chyba nie jest skoro nawet nie potrafisz schematu połączeń narysować. A z pewnością nie jest to najpewniejsze rozwiązanie, bo przekaźniki mają drgania na stykach przy załączaniu, więc przy zbliżonych czasowo wciśnięciach o wyborze zwycięzcy...
sprawdzenie pierwszego warunku powinno odbywać się na zasadzie sprawdzenia zbocza. w ten sposób wykluczysz możliwość przerwania przytrzymywania przycisku. Do tego jest potrzebna zmienna pomocnicza. [syntax=c] if (digitalRead(1)==LOW) { if (wejpom==0) { wejpom=1; //TWOJE INSTRUKCJE } } else wejpom=0; [/syntax]
Witam, Mam mały problem z programem z książki o programowaniu ATmega8 i ARM7 Pawła Borkowskiego tj. cw. 2 z lekcji o przerwaniach. Treść ćwiczenia to takie obsłużenie diód podłączonych do PC0, PC2 i PC4, aby PC4 świeciło po załączeniu przycisku, PC2 ma się zaświecić po 1,5 sekundzie przy wykorzystaniu timera1, a PC1 ma się zaświecić po 170ms przy wykorzystaniu...
Wiem ze w PHP operatory sa takie same jak w c, dlatego ucze sie C na uC, a nie np BASCOM'a ;] (choc C lepsze ;]). Dzięki za pomoc, teraz jest ok. Dodano po 14 A jednak nie, wystąpiła jeszcze bardziej komiczna sytuacja. Scislej: Gdy nacisne przycisk, do pamieci zapisywany jest czas wciscniecia, gdy w krótkich odstepach czasu nacisne kilka razy, mam po...
olo_3 -> to jest cały kod? ten który tu pokazałeś????? po pierwsze - gdzie masz pętlę główną po części inicjalizacyjnej programu ??? DO ... LOOP - chyba że ślepy jestem czy jak? (jeśli rzeczywiście jej nie masz to nie dziw się, że twój program wariuje bo po z tego co widać po inicjalizacji odrazu program leci do obsługi przrwania i się zapętla na śmierć)...
Klawiatura jest właczona bo współczesne komputery można włączyć/wyłaczyć przyciskami pod DELETE. Monitorowanie przerwania wymaga zasilania.. Daj winampowi wyższy priorytet.
Witam Chcę skonstruować urządzenie, które oprócz zegarka mierzyłoby jednocześnie temperaturę i obydwie wielkości wyświetlałoby na wyświetlaczu LCD. Gdy programy napisałem osobno, obydwa działały, lecz gdy połączyłem je w całość, to czas odczytuję bez problemu, natomiast nie wyświetla mi się temperatura. Podejrzewam, że problem jest w przerwaniach. Poniżej...
Przede wszystkim kwesoly- wielkie dzięki za pomoc. Przerobiłem ten Twój program ale ciągle nie wiem co jest źle. #include <avr/io.h> #include <avr/interrupt.h> #include <stdbool.h> #define INT0PIN PIND #define INT0NUM PD2 #define GetINT0Pin() (INT0PIN & (1<<INT0NUM)) #define Potrzebne_50ms 30 volatile...
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 z Arduino. Temat oczywiście nie zastąpi w pełni czytania noty...
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 naprawdę pierwsze doświadczenie z Timerami, flagami...
Witam, Chciałbym napisać program, w którym użytkownik musi nacisnąc przycisk jak najszybciej po zobaczeniu określonego wzorca na panelu diod. Czas powinien się wyświetlać na wyświetlaczu. Używam edu board LPC2148. Timer1 jest używany do zapalania diod. Procedura przerwania timera1 zapala diody co 2ms aby zapalone diody tworzyły jakiś wzorzec(np. strzałkę)....
Wkleję cały program: = 0x33" naprawiło problem, więc gdzieś tu tkwi szkopuł. Bo jeśli dobrze rozumuję , to: bajt XX10 XX11 & ~0x33 1100 1100 ( czyli ~(0011 0011)) bajt XX00 XX00 PD7 jest niepodłączone. PD6 to wyjście na tranzystor (przez rezystor). Nie mam schematu, ale układ elektrycznie działa ok. PD2 i PD3 to switch'e zwierające do masy. Drugi...
Chodzi mi o jakiś przykladowy kod źródłowy, By kontroler np 2313 reagował przerwanem na przycisk. Wiem że to dyletancka postawa ale nie wiem czy symulator dobrze odzwierciedla przerwania...
witam, mam problem z przerwaniami i nie wiem za bardzo jak go rozwiazac...a mianowicie: moj program korzysta z 3 przerwan: zewnetrznego (dolaczony przycisk), od przepelnienia timera i od UARTu(wysylanie danych).chcialbym aby przetwornik A/C dokonywal pomiaru w stalych odstepach czasu wyznaczanych przez timer, dane z przetwornika byly zapisywane w pamieci...
800 obrotów/min to max jakie będą używane w tym enkoderze, ale nie mogę zatrzymywać przerwania, bo impulsy muszą być liczone ciągle, wszystko resztę muszę wykonać pomiędzy przerwaniami. Bzdura. Przerwania będziesz miał wyłączone na max kilka cykli. Po włączeniu przerwań jeśli w międzyczasie nadeszło zbocze wyzwalające to zostanie wykonana procedura...
Witam. Pisze program sterujący pracą silników krokowych. Pisałem cały czas tak program by mieć konktrolę nad prędkością każdego z silników osobno (chodzi o to że silniki mają różne przekładnie a chce by wszytskie elementy poruszały się z tą samą prędkością obrotową więc prędkość ustala się raz w programie i się jej później nie zmienia) Zastosowałem...
Witam. Tak jak w temacie podłączyłem Atmege8.Pod PB0 podpiąłem LED,a do PC0, PC1 i PC2 przyciski zwierające wejście do masy. Układ ma generować miganie diody w następujący sposób: -wciskam PC2 uruchamia się generowanie częstotliwości co widać na diodzie LED -za pomocą przycisków PC0 i PC1 zwiększam lub zmniejszam częstotliwość migania diody. Kod napisany...
Mam nastepujacy problem, probuje wywolac przerwanie zewnetrzne od przycisku ktore uruchomi mi licznik w celu eliminacji drgan stykow. Wszystko dziala dla przycisku podpietego do wyprowadzenia A0 ale dla przycisku podpietego do wyprowadzenia C13 juz nie dziala. Przy debagowaniu widze ze ciagle wchodzi mi w obsluge tego przerwania mimo ze przycisk nie...
ISR(INT1_vect)//RURA { blad++; er1=blad%10; er2=((blad%100)-er1)/10; er3=(blad-(blad%100))/100; GICR = 0x0; } tak na szybko... wchodzisz do obsługi przerwania i zwiększasz zmienną błąd nie sądzisz, że powinna być jakaś zwłoka pomiędzy kolejnymi przerwaniami. Chodzi o to, że takie jedno dotknięcie nie koniecznie może zostać zinterpretowane przez uC...
Rozwiazanie z flaga ustawiana w przerwaniu bedzie do tego najlepsze.Opoznienie w stosunku do reakcji czlowieka na przycisk bedzie zadne a funkcje setjmp i longjmp nie wiele tutaj zmienia.
dodaj pętle nieskończoną na końcu ...i zmień nazwę wektora na INT0_vect . Druga i niestety MASAKRA jaką robisz to _delay_ms() w przerwaniu. Jak napisał Mirek, w przerwaniach nie używamy żadnych "delay"(!) W ogóle nie używamy _delay() -nie tylko w przerwaniach. Czyżbyście cierpieli na jakąś manię prześladowczą :?: Poza tym- po co jest to kasowanie flagi...
Dodam że alias Sprzeglo oznacza port PC5 Atmegi 328 która nie ma tam wyjść OC (ma tylko ADC5/SCL/PCINT13). Reszta kodu nie ma nic wspólnego z przerwaniami. Jest wyświetlacz lcd, przyciski i diody. Działające w pętli głównej. Zresztą wszystko pozostałe jest wykomentowane a załączony kod można uważać za kompletny. Dodano po 4 Czy masz coś konkretnego...
Witam! Temat być może poruszany nie raz jeżeli chodzi o sprawę odczytywania stanu przycisków. U mnie jednak stanowią one niejako tło. Program ma za zadanie badać prawidłowe działanie kontaktronów, które są wyzwalane poprzez magnes umieszczony na wałku silnika krokowego. W załączonym kodzie przedstawia się to w ten sposób, że po włączeniu zasilania silnik...
witam, mam nastepujacy problem : chcialem uzyc atmegi do odczytywania obrotow kola za pomoca kontraktona ( taka szklana banka , dziala jak przycisk , zwiera sie w poblizu magnesu ) , wszystko by bylo dobrze jednak jest jeden podstawowy problem - obroty wykrywam za pomoca przerwania zewnetrznego niestety w momenci zalaczenia sie kontraktona ( kiedy przechodzi...
Mam mały problem z przerwaniami. Mianowicie kiedy klikam na przycisk to czasem nic się nie dzieje. (przyciski zmieniają godzinę) Czasem działają czasem nie działają. Ja myślę że popełniłem jakiś banalny błąd i z tego takie problemy. [syntax=c]#include<avr/io.h> #include<avr/interrupt.h> #include<util/delay.h> #include<stdlib.h>...
Witam, prosiłbym bym o pomoc, żeby ktoś wytłumaczył, albo podał przykład jak skonfigurować przerwania zewnętrzne w tym mikrokontrolerze bo walczę z tym i nic mi nie wychodzi i zaczynam podejrzewać, że to procek jest zepsuty, albo tej sztuki jeszcze nie opanowałem :D na początku pisałem własne kody, ale po nieudanych próbach w końcu wkleiłem gotowca,...
Witam, napisałem pierwszy program z zastosowaniem funkcji przerwania. Jest to licznik modulo 10 sterowany przyciskiem X0 (kierunek zliczania). Jednakże nie chce mi się skompilować. Kompilator podpowiada miejsce gdzieś przy funkcji przerwania. Prośba o pomoc i ewentualnie jakieś ciekawe sugestie co do konstrukcji samego programu. EDIT: Poprawiam zapis...
Witam. Mam problem z przerwaniem zewnętrznym Int0 w Atmega8. Chodzi o to, żeby po naciśnięciu przycisku podłączonego do końcówki Int0 wykonała się procedura obsługi przerwania. Napisałem wręcz helpowy program i nie działa. Jest takie coś, że od razu po włączeniu procka wykonywane jest przerwanie (na dodatek przez cały czas). Próbowałem też wyłączyć...
Chyba że chcesz zrobić tak, że przerwanie będzie się zgłaszało co 750ms. Wtedy by to miało sens tylko że musiałbyś tak robić że najpierw odczytujesz temperaturę a dopiero później zlecasz jej konwersję. . No i to jest słuszne. Pierwszy odczyt po resecie będzie błędny- jak to rozwiązałem swoim programie- już nie pamiętam, musiałbym zajrzeć. Pamiętam...
Witam na forum. Korzystam i dołączam się do tematu. Mój problem jest dla mnie niezrozumiały. Próbowałem kompilować i testować prościutki programik z przerwaniami, ale nie wychodzi. Oto ten programik. #include <avr/io.h> // dostęp do rejestrów #include <avr/interrupt.h> SIGNAL (SIG_INTERRUPT0) { PORTD = 0x1d; // zgaś diode LED } SIGNAL (SIG_INTERRUPT1)...
1. Podprogram obsługi przerwania "Przerwanie" musi kończyć się instrukcją "Return" 2. Wciśnięcie przycisku z tego co widzę łapiesz przerwaniem zewnętrznym INT0, w takiej sytuacji równolegle z przyciskiem przydałby się kondensator rzędu 100nF lub większy (trzeba popróbować), inaczej będziesz miał trzaski i w efekcie wielokrotne pojawienie się przerwania...
Ze względu na to, ze AVR nie ma możliwości wybudzenia z uśpienia zboczem Już pisałem koledze, że nie jest to prawdą. Tylko stare ATMegi nie miały takiej możliwości. Nowe ATMega/ATTiny jak najbardziej umożliwiają wybudzanie zboczem. Autor nie napisał o jakim procesorze mowa, można tylko zgadywać. W większość projektów widze Mega8, choc dużo lepsza Mega88...
Podczas pisania programu dla mikrokontrolera AT90S2313 napotkalem na dosc osobliwy problem z przerwaniami zewnetrznymi. Mianowicie przerwanie wywoluje odbiornik podczerwieni (przez przerzutnik Schmitta) sterowany oczywiscie dioda IRED. Dzialanie tego systemu mozna porownac do bariery podczernieni. Problem lezy po stronie programowej. Po odblokowaniu...
Witam :) Mam następujący problem. Jak podczas obsługi przerwania lub podczas trwania programu sprawić aby chwilowo wyłączyć przerwania. Np aby podczas obsługi jednego przerwania nie zostało wykonywane inne przerwanie. [......] ISR(INT0_vect) // przerwanie wywołane wciśnięciem przycisku { cli(); [.......] // kod przerwania sei(); } mimo takiego zpisu...
Opcji jest mnóstwo, chociażby przyciski podłączyć do INTx. Ale ja bym to zrobił tak: Skok co 1s. do przerwania timera1, a w nim najpierw odczyt z DS-a, a po odczycie daje mu konwersje. Koniec przerwania. Pętla Do-Loop gdzie obsługuje przyciski, wyświetlacz itp. End
Wiesz co, aktualnie jestem w pracy, nie mam dostępu do mojego PC. PD1 był ustawiony na wejście do mikrokontrolera, aż takiej głupoty bym nie zrobił ;p. A napięcie podałem takie, jakie panowało po wciśnięciu przycisku i wysłaniu sygnału na PD0, na który reagował. Powiem jeszcze, że po zmianie programu, w którym mikrokontroler reagował na wciśnięcie pierwszego...
No niestety to wielka wada tego rozwiązania, że przerwania kradną czas ;/ Teraz widzę, że dodanie opóźnienia nawet waitus 1 wywraca na głowę główną pętle programu. Oto moje wypociny, niestety jeszcze nie spełniłem wszystkich warunków o których wspominaliście. Program obsługuje dwa przyciski w pętli głównej które zwiększają i zmniejszają wartość zmiennej...
2 układy, tak też można ale w między czasie byłem na politechnice i kolega doradził mi że problem tkwi w źle podłączonej klawiaturce . ja wziąłem schemat podłączenia z "Elektroniki praktycznej " nr 3/2001-zakładałem że tam są sprawdzone rzeczy , niestety okazało się inaczej . Tam jest schemat pewnej centralki gdzie klawiaturka jest kąbinacją 4 lini...
Witam, czy można w Delphi w pętli repeat ..until ( lub innej ) czekać na zmianę zmiennej ustawianej w przerwaniu np. od Timera ?? Tutaj jest przerwanie zegara systemowego: procedure TfrmMain.Timer_AckWaitTimer(Sender... TObject); begin AckTimeOut := true; Timer_AckWait.Enabled := false; end; a tu jest kod który powoduje zawieszenie...
Najprostsze rozwiązanie - w przerwaniu od czujki uruchom sprzętowy timer. Przerwanie od timera powoduje włączenie alarmu. Jeśli użytkownik wyłączy system przyciskiem, to w procedurze przerwania przycisku wyłączasz timer. Żeby wszystko działało jak trzeba, musisz zezwolić na zagnieżdżone przerwania (czyli żeby ISR od timera mógł się wykonać w momencie,...
Witam. Muszę napisać funkcje obsługi klawiatury matrycowej. Niestety generuje mi się dodatkowe przerwanie podczas zmiany stanu wyprowadzeń pinów. Przerwania jest generowane gdy aktywuje ponownie przerwania. void klawmat1(void) { GPIO_EXTILineConfig(GPIO_PortSourceGPIOE... GPIO_PinSource0); EXTI_InitStructure.EXTI_Line = EXTI_Line0; EXTI_InitStructure.EXTI_Mode...
Witam, Chce uruchomić przerwanie PCINT0, z tego, co zrozumiałem, z datasheeta to muszę ustawić odpowiedni bit w rejestrze PCMSK, bit PCIE w GIMSK. Nie znalazłem żadnej konfiguracji przerwań PCINT, ale z tego, co wyczytałem to one działają tylko na zmianę stanu na odpowiednim pinie. Do pinu z PCINT0 podłączyłem przycisk zwierany do masy. Jednak, gdy...
Witam, Jak ustawić w bascomie wejście dla przycisku podłączonego do masy. Dokładniej chcę podłączyć przełączniki krańcowe do końcówek obsługujących przerwania. chciałbym aby przełączniki zwierały właśnie do masy. Czy muszę jakoś to ustawić oprócz deklaracji przerwań i akcji?
Dokładnie nie są blokowane, kiedyś robiłem testy na przyciskach i nie pamiętam by obsługiwane przerwanie domyślnie blokowało inne przerwania. Zastanawiam się natomiast ile poziomów zagnieżdżania przerwań jest dostępnych. We wszystkich przykładach są pokazywane sytuacje gdy przerwanie o wyższym priorytecie zostaje wywłaszczone o następnym przerwaniu...
Po pierwsze pozbądź się waitów, po drugie przerwania. Podam hasła do opracowania: Timery - odmierzanie czasu, przerwania, timing zdarzeń Przyciski - podciąganie, odczyt z rejestru PINn
Witajcie ! Wracam po latach do elektroniki - kiedyś zrobiłem wykrywacz metali Stuart2 na PICu, teraz chciałbym zrobić sobie ten projekt całkowicie po swojemu, od nowa i na AVR. Czytam o programowaniu AVRa i o przerwaniach - że w przerwaniu nie powinno się umieszczać opóźnień. PRogram musi działać w dużym reżimie czasowym - jest to wykrywacz PI. Wymyśliłem...
Komentujemy to, że używasz przestarzałego kompilatora i środowiska. Po prostu zainstaluj coś co ma mniej lat niż moje dzieci :). Skąd takie coś żeś wytrzasnął? Koledzy piotrva i Piotrus_999, ja was proszę, przeczytajcie pierwszy post w temacie, ale ZE ZROZUMIENIEM, zanim klikniecie na przycisk "odpowiedz". Szczególnej uwadze polecam drugie zdanie w...
Oto cały program, poprawiłem go według Waszych wskazówek jednak dalej nie wchodzi do obługi przerwania. Powiedzcie mi co w nim jest nie tak? Żeby przyśpieszyć analize opisze go po krótce. Przez włączeniem należy ustawić w stan wysoki Pind.3 wtedy program poprosi o tekst do wyświetlenia. Potem przechodzi do pętli w której są 3 efekty okazywania napisu...
Właśnie ! Weź to obejrz w asmie. U mnie Keil to tak organizuje, ze w asmie pod odpowiednimi adresami przerwań są instrukcje skoków LJMP do obszarów, w których kompilator był łaskaw umieścić obsługę przerwania. Czyli wszystko jest ok! O! Już wiem. Najedź w lewym okienku na nazwę Twojego pliku źródłowego. Prawym przyciskiem myszy i wybierz "Options for...
Witam Dziękuję za pomoc, ale nie opisałem dokładnie problemu i Twoje rozwiązanie nie pomaga :-(. Chodzi o to że podczas symulacji zwierając P3.2 lub P3.3 do masy w podglądzie rejestru P3 widać że zmienia się jego wartość, natomiast program nie przechodzi do obsługi przerwania. Natomiast gdy naciśniemy przycisk INT0 lub INT1 podczas symulacji program...
Nawet za bardzo nie wiem jak temat nazwać. Cchaiłbym stworzyć uklad ktory: Przerwie połączenie na okreslony czas 15sekund (zaciski np. A i B, które normalnie cały czas są zwarte a w wypadku zasterowania-patrz poniżej- zostaną rozwarte na określony czas). Dwie niezależne metody zasterowania powyższego przerwania. 1. Impulsem 12V (włączenie zapłonu w...
Witam, w pralce AEG 41250 od pewnego czasu dziwnie zachowują się przyciski i kontrolki na panelu. Przyciski nie reagują lub naciśnięcie powoduje zapalenie diody przy całkiem innym przycisku, do tego wybranie programu czasami powoduje dołączenie jakiejś dodatkowej funkcji, której nie można wyłączyć przyciskiem. Płytkę panelu górnego przejrzałem w poszukiwaniu...
Dzięki PDT, teraz działa elegancko. Znalazłem także coś na operacjach bezpośrednio na rejestrach SYSCFG->EXTICR Witam, Chcę obsłużyć przycisk USER za pomocą przerwania. Myślę, że wcale tego nie chcesz. Przycisk obsługiwany przez przerwanie nadaje się do jednego - do wybudzania procesora z głębokiego uśpienia. Do wszystkich innych celów dużo łatwiej...
Witam, Mógłbym prosić o przerobienie tych dwóch bibliotek tak aby przerwania nie kolidowały że sobą? tak mi się wydaje że to chodzi o przerwania. Problem polega na tym że, jak wyłączę:
Cześć. Nie mam już pomysłów. Ostatnio przesiadłem się na VSCode i generację kodu z CubeMX. Stworzyłem sobie szablon na STM32F107 z LWIP i pozaznaczałem wszystkie przerwania. Pinguje układ dopiero kiedy w głównej pętli umieszczę MX_LWIP_Process(); , czyli wszystko z płytką jest raczej OK. Przeszedłem program debuggerem i jest uruchamiane: HAL_NVIC_SetPriority(ETH_IRQn,...
Witam chce napisać program do zdalnego sterowania (komunikacji między dwoma mikrokontrolerami 89C51) po przez RXD i TXD jeden ma wysyłać a drugi odbierac bajty planuje to zrobić narazie na podczerwień ale niewiem jak napisac ten program programuje od niedawna ale niebawiłem sie jeszcze z przerwaniami.Mój problem polega na tym że nieiewiem jak uaktywnić...
Witam Używając Paragon Partition Manager'a próbowałem podzielić C:/ na dwie partycje. Przy 99% proces stanął; myślałem, że sie zawiesił więc wyłączyłem laptopa przyciskiem. Po tym standardowy komunikat "Operation interrupted, please insert recovery disk". Próbowałem z płytą od Visty, odnawianie MBR i różne inne cuda na kiju. Włożyłem "Recovery CD" od...
Witam. Mam problem, z którym męczę się już dłuższy czas. Pod NodeMCU mam podpięte 4 moduły i2c PCF8574. 2 z nich używam jako wyjście, kolejne 2 jako wejście. Wszystko działa jak należy, gdy układ podłączam do USB z przyciskami nie wciśniętymi. Problem pojawia się gdy podczas włączenia zasilania - podpięcia pod port USB - jeden z przycisków podpiętych...
Mógłbyś pokazać ten kod z opóźnieniem o którym piszesz? Dobra zaskoczyłem, masz racje. Jakbyś mógł mi jeszcze pomóc w BKP. Prosta funkcja zapisująca do rejestru BKP [syntax=c]uint8t_t Licznik; RCC->APB1ENR |= RCC_APB1ENR_BKPEN | RCC_APB1ENR_PWREN; PWR->CR = PWR_CR_DBP; BKP->DR1 = Licznik++;[/syntax] Potem to co zapisałem odczytuje na lcd. To działa...
Masz 2 opcje albo w pętli głównej albo w obsłudze przerwania. Po za tym jeśli już korzystasz z timera to wykorzystaj go do odliczania czasu zamiast korzystać z waitms.
... Proszę o jakieś sugestie, dodam, że nie mogę niczym innym zastąpić Waitkey().vayo No to uziemiłeś proca na amen , a do odczytu klawiszy lokalnych , pozostały Ci przerwania.Powiedz , dlaczego musisz Waitkey() , a nie np. Inkey ?? Piotrek
Wymyśliłem sobie, że będę obsługiwał klawiaturę matrycową 4x4 na płytce ZL3AVR w przerwaniu generowanym podczas naciśnięcia któregokolwiek klawisza (wyprowadzenie JP13 połączone mam z INT0), siedzę nad tym bardzo długo i nie mogę doszukać się swego myślowego błędu. Pierwszy wiersz (kolumna) działa poprawnie natomiast wszystkie pozostałe działają tak,...
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, gdyż jego usunięcie ( ale pozbawienie obsługi RC5 )...
0. PORT_ISC_LEVEL - jak sama nazwa wskazuje, generuje przerwanie tak długo, jak długo jest stan niski. Skasowanie flagi przerwania nie eliminuje przyczyny przerwania. Gdybyś blokował przerwania INT0 dla portu, to miałbyś pojedyncze wyzwolenia, a tak to obserwujesz 2 (i pewnie też więcej) dla przytrzymanego przycisku. 1. Xmegi mają sprzętowe odwracanie...
Witam Niedawno zaczałem zabawe z uC i programowanie i docelowo, a może i nie ;) chciałbym zbudowac wydaje mi się prosty układ do regulacji opadania i podnoszenia ramienia. Mam dwa przyciski góra, dół. jeden potencjometr na ramieniu drugi do ustawiania zadanej wysokości na jaką ramie się ma opuścić. Tu sprawa jest prosta, ale chciałbym aby po ustawieniu...
A dlaczego miał by startować od początku? Niech wraca tam gdzie skończył. Nie widzę też konieczności stosowania przerwania do przycisków. Moja propozycja: Przerwanie timera wywoływane co sekundę. W przerwaniu tym zwiększany jest licznik czasu, ewentualnie ustawiana odpowiednia flaga, a potem w pętli głównej jeżeli flaga ta była ustawiona, to odczytywany...
Cześć. Napotkałem ostatnio na pewien problem, mianowicie w momencie gdy wywołuję przerwanie w swoim układzie, to po jego obsłudze główny blok programu nie jest kontynuowany, tylko wszystko zaczyna się od początku (albo resetuje procek). W załączniku schemat urządzenia. Załącznik usunąłem. Przerwanie jest wyzwalane jednym z 9 przycisków, następnie bramka...
Program dopiero powstaje (dopiero mam szkielet do uzupełnienia), wiec moze byc duzo elementów nieaktywnych takich jak PWM'y i i2C itp(ale konfiguracje juz sa), głównie jest MENU nieskonczone ale tyle co jes to działa , no i nieszczesny pomiar z wyswietleniem co 0,5 s za pomoca flagi z przerwania. Docelowo będą czytane wszystkie wejscia ADC ale jak utknołem...
OK, rozumiem. Napisałem coś takiego, prosta sekwencja na liczniku do sterowania silnikiem krokowym. Przyciski zwiększają lub zmniejszają prędkość sekwencji, tylko mam taki problem. Muszę zrobić tak, aby jedno wciśnięcie przycisku powodowało przyspieszenie, potem drugie wciśnięcie przycisku kolejne przyspieszenie itd. Z tego co wyczytałem, to najlepiej...
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; podłączony jest również PICkit 3 przez icsp. Korzystam...
Witam, odgrzebałem swój projekt odbiornika podczerwieni, który działa świetnie, rozpoznaje adres i komendy pilota. Wszystko obsłużone jak należy. Problemem jest wykrycie przytrzymania przycisku. Nie zrobiłem tego odrazu a teraz zaczęły się schody. Napisałem fragment odpowiedzialny za obsługę przytrzymania jednak nie działa :( Projekt na Atmega328p,...
Najlepiej podac przyklad z zycia wziety. Zalozmy ze wykonujesz czynnosc zwana prasowaniem. Nagle rozlega sie szwonek do drzwi. Co robisz?? PRZERYWASZ prasowanie i idziesz zobaczyc kto dzwoni, gdy sie okaze ze to listonosz przyniosl list polecony to go odbierzesz i wrocisz do prasowania. Tak samo jest w procesorze. Wykonuje on program glowny ktory np....