Witam ! Zwracam sie z prosba o rade w sprawie obslugi przerwań. Jestem na ukonczeniu projektu termometru na AT89S52 w ktorym mają działac dwa przerwania - wewnetrzne od timera ktory zapisuje wyniki 10 kolejnych pomiarow do pamieci wewnetrzej u-kontrolera oraz zewnetrzne od przycisku - microswitcha...
Jestem w trakcie pisania programu na Atmegę8. Mam zdefiniowane trzy przerwania: [syntax=c] ISR(INT0_vect) ... = 0; //wywołanie co 10ms 50Hz } ISR(ADC_vect) { pomiar = ADCW; } ISR(TIMER1_COMPA_vect) { PO... ^= 0x10; if (enable_flag == 1) { step++; } if (step == 5000) { step...
Witam Utknąłem z moim kodem i plątam sie w koło ciągle, dlatego proszę o pomoc. W podprogramie "przyciski" przerwania od timer0 mam zrealizowany odczyt przycisków i zrobiłem sobie "flagi czasowe" przyciski: 'przerwanie co 26ms . kod sprawdzania przycisków . incr licz if licz=19 then...
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...
Powinieneś rozdzielić sprawdzanie przycisków od wykonywanej czynności. Najlepiej sprawdzanie przycisków wrzucić w jakieś przerwanie (chociażby portu) i przy okazji zrealizować debouncing. Po sprawdzeniu ustawiasz odpowiednio flagę - każdy przycisk ma swój nr. Dzięki temu dopóki nie naciśniesz kolejnego...
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...
Witam, Piszę kod programu jest on dość spory i chcę wykorzystać kilka przerwać. z Tego co pamiętam to w prockach AVR każde przerwanie ma swoją nazwę. Przy kompilatorze HI-TECH było chyba podobnie (chyba była konkretna nazwa do konkretnego przerwania ale mogę się mylić krótko z niego korzystałem :P) Czytam...
gdyby zatrudnić przerwanie do sprawdzania stanu przycisku to odpadłby problem sprawdzania przycisku w każdym obrocie pętli :-)
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 przerwaniu przycisku blokujesz przerwanie przycisku i uruchamiasz timer sterujący wyświetlaniem, który kiedyś tam, gasząc wyświetlacz, włącza przerwanie przycisku. To "czekanie 20 ms" i powtórne sprawdzanie przycisku to jakaś magia i nie ma ani trochę sensu. Nie wspomniałem o jeszcze jednej rzeczy....
przeciez juz ci powiedzieli... uzyc przerwan! sprawdzaj w przerwaniu od timera (np co 20ms) stan przyciskow i ewentualnie cos rob jesli masz taki plan. niemniej jednak byloby lepiej wrzucic obsluge tego termometru do przerwan (rowniez od timera) 4\/3!!
(at)laeleigh Jeżeli ten przycisk jest podłączony jak na rysunku, to raczej nie zadziała, ponieważ naciskając przycisk robisz zwarcie do masy. Druga opcja, to stałe zwarcie, ale wtedy nic nie powinno działać. Przycisk powinien być podłączony tylko i wyłącznie do GND i do pinu Arduino, tutaj D3, skonfigurowanego...
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...
Witam. Mam taki dziwny problem - odpalam sobie przerwanie co 10ms, w nim chciałem zrobić coś w stylu bufora dla danych wejściowych, ponieważ mam przerwanie z innego timera, które trwa dość długo (odczyt temp, ustawienie na podstawie tej wartości stanu wyjść, wypisanie temp. na lcd). Na to przerwanie...
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...
Pewnie że mamy ;). Użyj przerwań. Najprościej jest zrobić całość 'głównej' części pracy na przerwaniach w następujący sposób: a) Pomiary na timerze 0, wywoływane cyklicznie b) Obsługa przycisków na przerwaniu int0, wystarczy że podepniesz odpowiednio przyciski do pinu int0 i AtMega automagicznie...
Obsługa przycisków w ten sposób jest trochę nie wskazana, zwłaszcza gdy chcemy zrobić sprzętowy "debouncing" . Polecam lekturę: Nie jest zalecane, aby wprowadzać opóźnienie w przerwaniach. Przerwanie powinno być bardzo zwięzłe i szybkie. Jeżeli chcesz zrobić softwarową obsługę "debouncingu" lepszym...
Tymczasowo rozwiązałem problem, choć wartości napiecia na przyciskach nie sa prawidłowo wyswietlane. W kodzie ustawiłem wartość PORTU A na '255' na stan wysoki. I to pomogło mi choć trochę uzyskać widoczność działania przycisku po nacisnieciu. W kodzie w linice przerwania sprawdzania klawiatury sa podane...
Witam. Niestety program który chcę napisać nie działa już w początkowej fazie. Nie wiem dlaczego, dlatego proszę aby ktoś na to zerknął i powiedział co jest nie tak. Generalnie program ma działać tak, że po wciśnięciu przycisku program leci do przerwania, w przerwaniu sprawdza czy przyciśnięcie było...
Ok to ja Ci może dopisze komenty do Twojego kodu i zobaczysz co masz nie tak :) [syntax=c]#define READ_KEY_PIN PIND #define SHIFT_KEY_PIN PORTD0 #define DEC_NUM_KEY_PIN PORTD2 #define SHIFT_KEY_PRESSED (READ_KEY_PIN & ~0b00000001)// sprawdzasz czy ktorys z przyciskow poza PD0 nie jest wcisniety #define...
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ę....
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...
Przerwania to nic innego jak wywoływanie konkretnej funkcji, gdy wystąpi określone zdarzenie (np. przepełnienie licznika, odebranie danych z UARTA, zmiana poziomu na pinie INT0) Polecam zapoznać się z datasheetem od uC, którego używasz. Tam znajdziesz informacje o przerwaniach, m.in jakie przerwania...
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...
Może powinieneś (na przykład) jednak synchronizować ten timer. Dzięki za sugestię bo nie pomyślałem o tym wcześniej, jednak i to nie pomogło. A może powinieneś (na przykład) w ISR, wyłączyć timer na czas ładowania a następnie włączyć z powrotem. To rozwiązanie pomogło, choć nie bezpośrednio....
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...
Zabrałem się do pisania programu w następujący sposób czy po załączaniu timera1, jego wartość jest zawsze równa 0, czy też zapamiętuje swoją wartość przed wyłączeniem i później po ponownym włączeniu liczy od zapamiętanej wartości? Przy kolejnym przerwaniu sprawdzana jest wartość timera, dla...
Witam! Staram się rozgryźć dlaczego coś co nie ma prawa działać działa :) obsługa klawisza na przerwaniach Klawisz podłączony do portu PCINT przerwania: [syntax=c] #def... _TICK_TIME (1000/((F_CPU / 64) / 256)) #define _DEBOUNCE 20 #define _DEBOUNCE_TICKS (_DEBOUNCE...
Witam serdecznie doświadczonych w temacie użytkowników forum. Proszę o pomoc w nakierowaniu na właściwe tory, gdyż nie wiem już co robię źle. Znalazłem podobny temat na elektrodzie, aczkolwiek zaproponowane tam rozwiązanie ("przenieś semafor przed włączeniem przerwań") niezbyt mi pomógł. Używam płyteczki...
Najprostszym rozwiązaniem wydaje mi się wygenerowanie sygnału wspólnego (tutaj mającego 3 stany: oba_puszczone, mieszany, oba_nacisniete) oraz operowanie na jednej pomocniczej zmiennej "gotowosc" - cykl zacznie się tylko wtedy, kiedy sygnał wspólny jest w stanie oba_nacisniete a układ jest gotowy - wtedy...
Witam, Jestem w trakcie realizacji lampki RGB jednak napotkałem na pewien problem a mianowicie mam 3 przyciski: 1. zmienia tryb wyświetlania 2. zwiększa szybkość lub kolor (w zależności od trybu) 3. zmniejsza szybkość lub kolor (w zależności od trybu) Pierwszy przycisk obsługiwany jest w przerwaniu...
Zagląda ktoś do tego tematu?? Może ktoś zagląda, ale Ty na pewno nie zastosowałeś wiedzy którą dostałeś. Z tego powodu zostaną tylko rady w stylu Zaquadnik , którego pomysł jest idiotyczny. BlueDraco powiedział Ci co zrobić, aby obsłużyć przełączanie/wybór programów. Ty zrobiłeś obsługę przycisku...
Twoje przerwanie PCINT2 uaktywnia się, gdy zmienisz stan odpowiedniego pinu. Po naciśnięciu przycisku, program zmienia ci bit LEDbottom w PORTB na przeciwny, a następnie wychodzi z przerwania. Następna zmiana w tym porcie nastąpi dopiero, gdy puścisz przycisk. Jeżeli chcesz, aby migała gdy przycisk...
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...
"pod koniec obsługi przerwania wyzerowć jego flagę". Po czym następuje proces zdejmowania ze stosu. Ileś cykli trwa. W tym czasie teoretycznie może nastąpić jeszcze jedno ustawienie flagi. Teoretycznie- bo czekanie na wygaszenie drgań 2x80ms to jest wieczność. Dlatego sądzę że używanie przerwań...
Witam. Szczęśliwie dla użytkowników praktycznie wszystkie wyświetlacze alfanumeryczne LCD obsługuje się tak samo. Ich chipy sterujące są zgodne z HD44780. W skrócie obsługa LCD'ka wygląda tak: - inicjalizacja (zestaw komend sterujących, ustawia się min. sposób podłączenia 4/8 bit, ilość linii itp...
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...
Aby wejść do drugiego warunku i musi przyjąć wartość co najmniej 256, co jest nie możliwe, bo przy i == 255 program nie wejdzie do pierwszego warunku w którym jest inkrementacja. W drugim warunku z kolei nie osiągnie wartości potrzebnej do wyzerowania i. Czemu nie nie zastosujesz if()...else? Faktycznie,...
Chcę podłączyć 5 przycisków do portu P0 i jednocześnie tak by każdy z nich wyzwalał przerwanie na zbocze opadające. Zrobiłem takie coś. Teraz teoretycznie po uruchomieniu się przerwania zerowego powiniene, miec mozliwość odczytania który przycisk był wciśnięty. Algorytm był by taki, ze sprawdzam...
Przez ostatnie 2h doszedłem do tego w czym tkwi problem zarówno w obsłudze przerwania od timera0 oraz od zewnętrznego INT1. Problem polega na tym że zmienna globalna którą wykorzystuję jako flagę istnieje tylko w obsłudze przerwania,flaga nie jest widoczna w głównej pętli programu lub po obsłudze przerwania...
Nie mogło by być tak, że to przycisk generował by przerwanie? ... i pewnie do tego kolejny "delay" w przerwaniu od przycisku w celu eliminacji drgań styku? Nie brnij dalej w te delay'e, bo jeśli będziesz chciał dodać kolejną funkcjonalność to może okazać się to niemożliwe. Zrób sobie timer np. co...
Błędów całe mnóstwo. 1. Nie robi się przerwań od przycisków. Zrób przerwanie timera np. 100 Hz, w nim sprawdzaj stany przycisków. 2. __attribute__ ((interrupt)) jest zbędne. 3. Znacznik przerwania kasuje się na początku, nie na końcu obsługi przerwania. 4. Do zmiany stanu linii portów służą rejestry...
Witam, Mam takie pytanie odnośnie przerwań w mikro kontrolerze STM8s. Czy jest możliwość jakiegoś resetu stanu przerwania (flagi)? Chodzi mi o coś takiego, aby stm sprawdzał w sposób ciągły, czy na konkretnym pinie wejściowym (dajmy na to PB7) jest podany sygnał masy (w tym przypadku wciśnięty przycisk)....
Atmega 32, program obsługujący klawiaturę - 4 przyciski, odczytywane co 20 ms ( co któreś przerwanie timera 1), przyciski podpięte pod PC), PC0,PC1,PC2,PC3. jeżeli w programie wykorzystuję PC0 i PC1 to jest ok , ale jeśli w pętli obsługi przerwania odczytującego klawiaturę sprawdzam stan przycisków...
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...
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...
Tak wiec plik glowny wyglada to nastepujaco #include <at89c5131.h> #include "zmienne.h" #include "funkcje_lib.h" extern GET_KEY(); BYTE Tablica[10]; //Tablica[0] sekundy //Tablica[1] minuty //Tablica[2] godziny //Tablica[3]....
Projektuje układzik wykorzystujący prostą klawiaturę 3 przyciskową. Przyciski podłączone są do końcówek PD5, PD6 i PD7. Używam rezystorów podciągających z atmegi. Program piszę w bascomie i mam teraz problem. Mam ustawione cykliczne przerwanie (co 100ms) od Timera1, w którym sprawdzam stan tych 3ch końcówek....
ustawiasz licznik tak by generował przerwanie co 50ms w tym przerwaniu sprawdzasz swoje sygnały (przyjmijmy ze wyzwalanie jest zerem) w przerwaniu sprawdzasz czy sygnał jest = 0 jeśli tak ustawiasz sobie jakaś zmienna bitową flagę (znak ze sygnał jest). w następnym przerwaniu (flaga ustawiona)...
Witaj Adamie. ... i niestety nie wychodzi. Na jakiej podstawie tak uważasz? Dodam, że pracuję na Atmel Studio 6, które bardzo nie lubi funkcji SIGNAL(SIG_INTERRUPT0) Ponieważ SIGNAL jest przestarzałe: Atrybut NOBLOCK dodałem na końcu, więc można się nim nie sugerować. W jakim celu?...
W zasadzie nie potrzebujesz JP13. To chyba taki ukłon w stronę 8051 z dwoma przerwaniami zewnętrznymi. AVRy mają przerwania PCINT na prawie wszystkich pinach i w momencie jak wciśniesz przycisk i tak możesz wywołać przerwanie. Niemniej w ogóle nie powinieneś robić tego na przerwaniach zewnętrznych (poza...
W programiku w obsludze przerwania int0 mam czekanie na zwolnienie przycisku ustawienie flagi i powrot, moge zrezygnowac z czekania na zwolnienie przycisku ale wtedy po ustawieniu flagi on wejdzie w obsluge zmiany flagi ponownie pomimo nie nacisniecia przycisku ponownie. Chyba tego nie skomplikowalem...
Przycisk powiadasz. Wg. mnie przyciski najlepiej obsługiwać w polling-u, załatwiając od razu kwestię eliminacji odbić styków. W tym, konkretnym przypadku, może w przerwaniu TIMER1 najpierw wykonywać rzeczy krytyczne czasowo, a potem sprawdzać przycisk?
Witam Chciałem włączyć przerwania zewnętrzne: ENABLE_INTERRUPTS(INT_RB) - jak dobrze rozumiem to są przerwania na liniach RB4-RB7 W obsłudze przerwania dałem tymczasowo proste włączenie odczekanie chwili i wyłączenie diody. Po uruchomieniu układu dioda cały czas się włącza i wyłącza. Coś jakby...
szelus przeczytaj dokładnie o co chodzi układ działa ale czasy się nie zgadzają :/ opisałem dokładnie wadliwe czasy pracy optymalizacja jest wyłączona a ta pętla wytłumia drgania związane z przyciskiem, w przerwaniach nie mogę stosować makra _delay_ms(), a po za tym jedna iteracja wykonuje się w...
Faktycznie, z tymi nawiasami idzie się zaplątać, lecz niestety Twój kod również nie działa. Fakt, występuje inny objaw niż wcześniej, buzzer nawet po naciśnięciu nie chcę zamilczeć po ponownym przekroczeniu temperatury. Aktualny kod: [syntax=c]/* * main.c * * Created on: 2011-08-20 * ...
Zrób to w przerwaniu od zegara co np. 100mS. Sprawdzasz czy przycisk jest wduszony i jeśli tak to przypisujesz zmiennej typu static wartość 100. Dalej w tym samym przerwaniu sprawdzasz czy ta zmienna jest większa od 0. Jeśli tak to zmniejszasz ją o 1 i zapalasz podświetlenie. Jeśli nie to gasisz podświetlenie.
A AVRach oprócz nowej serii Xmega nie ma priorytetów przerwań. Obsługa przerwania blokuje wszystkie przerwania. Rozwiązaniem jest timer. Nie zwykłem wykorzystywać przerwań zewnętrznych do przycisków. Lepiej wykorzystać timer. Sprawdzając co np 100ms ich stan. 2x wykrycie kolejno mamy akcję. Dodatkowo...
Problem jest w programie, nie wiem czy koniecznie w kompilatorze. Dziś rano jeszcze to robiłem, dopisałem sei() oczywiście ale to nic nie zmieniało. Pętla while oczekuje na zakończenie transmisji, więc jeśli samo przerwanie jest nią wywołane, tak więc kiedyś ono się zakończy, po za tym sprawdzałem...
Sterownik dostaje z portu LTP sygnał STEP/DIR. Mikrokontroler ma za zadanie przetworzyć ten sygnał na sygnał sterujący mostkiem H, który będzie sterował silnikiem krokowym. Sygnał STEP/DIR steruje bezpośrednio mostkiem H (np. A4988) Co chcesz przetwarzać, jak i po co. A, i skąd weźmiesz komputer...
Zacznę od tego, że program podzieliłem sobie na części. Zaczynałem od skonfigurowania lcd, potem zająłem się odczytem wartości ADC poprzez czujnik wilgotności, następnie ośmieliłem się :lol: poprosić o wskazówkę w stworzeniu prostego menu do projektu i wykonałem to. Dodając kilka udogodnień, zacząłem...
Oczywiście pod warunkiem, że procek pracuje jako Master na magistrali i nie ma urządzeń na magistrali, które pracują z własnym przerwaniem :) Przykładem takich urządzeń jest zegar RTC, który ma wyjście przerwania i po podłączeniu tego wyjścia do linii procka może żądać obsługi przerwania po i2c, np....
Dzięki wszystkim za odpowiedzi, na początek spróbuję zmienić bramkę na AND, po wstępnym przeanalizowaniu układu to powinno wystarczyć. Może zadam głupie pytanie, ale czym są owe przyciski NO/NC? Balu, falling/rising edge sprawdzałem, to był pierwszy pomysł który przyszedł mi do głowy, niestety,...
Każdy z przycisków wywołuje przerwanie INT0. W obsłudze przerwania sprawdza się, który z nich został naciśnięty. Diody są po to, aby przyciski wywoływały przerwanie, ale nie zakłócały się nawzajem.
W programie jest : MCUCR=(1<<ISC01)|(1<<ISC... Czyli zbocze narastające wyzwala przerwanie. Jest to zabieg celowy czy błąd ? Urządzenie ma reagować na naciśnięcie przycisku czy jego puszczenie? Właśnie miało reagować na puszczenie przycisku. Z tym jest OK. Chociaż tak...
Znasz obsługe przerwań? Konkretnie to przerwania zewnętrznego Int0? Pod ten pin musisz podłączyć przycisk. Następnie w podprogramie obsługi tego przerwania piszesz instrukcje zwiększania jakiejś zmiennej. Po czym w tym podprogramie sprawdzasz wartość tej zmiennej w kilku przypadkach i zależności od...
Panowie, dlaczego nie zrobić sterowania diodami porządnie, tylko bawicie się w jakieś opóźnienia..? Macie w mikrokontrolerze timer z trybem porównania. 1. Robimy przerwanie od przepełnienia timera co czas wysłania na szyne danych diod pojedynczego bitu (ok 1,2 ms) 2. Ustawiamy wartość rejestru...
Cześć. Nie wiem tylko jak zrobić, żeby odczytywał jedno wciśnięcie klawisza. Przy takim programie po wciścnięciu klawisza rombie wykonywanie tego przerwania jak najęty aż do puszczenia klawisza. Mnie chodzi o to, że jak wcisne klawisz ma zrobić jeden raz obsługę jego funkcji i koniec mimo że user...
cześć. A w przypadku kiedy program jest w obsłudze przerwania od Timera a ja w tym momencie kliknę na którykolwiek przycisk to czy program wykryje to kliknięcie czy nie??. Czy dopiero kiedy skończy obsługiwać przerwanie od Timera program widzi kliknięcia od innym przycisków?? I co zrobić żeby w czasie...
To tzw. "iskrzenie" zwane profesjonalnie drganiami zestyków likwiduje się na drodze programowej (kolega ma zestaw rozwojowy i pewno nie będzie tam dolutowywał kondensatora). Wprowadza się tak jak moi poprzednicy pisali opóźnienie i sprawdza czy rzeczywiście przycisk został wciśnięty. Ja w przypadku większych...
Skonfiguruj port do którego podpięte masz SW1 i SW2 jako wejście z podciągnięciem (jeśli przycisk ściąga do masy). Zamiast wartości AT91C_AIC_SRCTYPE_EXT_NEGATIVE_EDGE użyj AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE, w obsłudze przerwania sprawdzaj faktyczny stan przycisku. Na końcu zamień w kolejność...
Dzięki za odpowiedź, jednak w żaden sposób nie przybliża mnie do rozwiązania. Dziwić się temu może tylko ten, co nie zagłębia się w sprzęt. Skoro przerwanie jest ustawione, to i się wykonuje... Most Arduino boards have two external interrupts: numbers 0 (on digital pin 2) and 1 (on digital pin...
Dzięki za odpowiedzi, wczoraj szybko padłem i zasnąłem:> Też początkowo chciałem obsłużyć przyciski w pętli bo mógłbym, albo timerem, ale dostałem na praktykach sugestię, żeby zrobić wszystko na przerwaniach i tak też się męczę. Co do flagi, wiem i próbowałem kasować ją na początku, ale to nie...
Przykład USART na przerwaniach: Przycisk na przerwaniach - ustaw tiimer do pracy z przerwaniem przepełnienia i sprawdzaj w nim stan przycisku. Możesz oprzeć się o ten przykład: Możesz także wykorzystać pin INT0 lub INT1 i przycisk zrobić na przerwaniach, pamiętając o drganiach styków: Jednakże...
Rzeczywiście dało się to uprościć mocno. Ponieważ dla potrzeb programu mam zrobione "fajne" makra typu: brfs Nazwa_Flagi, Etykieta ;skocz do Etykieta jeśli flaga ustawiona brfc Nazwa_Flagi, Etykieta ;skocz do Etykieta jeśli...
Tak więc przerobiłem kod tak jak mówiliście i wygląda teraz tak: [syntax=c] #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> struct keyboard { int lastKey; int isPressingNow; int numberOfKey; } k; volatile int interrupt; void...
Przycisk bezpieczeństwa powinien być realizowany na stykach normalnie zwartych NC. Jest to zabezpieczenie na wypadek uszkodzenia obwodu sterującego. Zastosowanie w wyłączniku wyzwalacza zanikowego (w odróżnieniu od wyzwalacza wzrostowego) teoretycznie zapewnia pewność działania układu bezpieczeństwa....
Nie programuje w arduino, ale pisałem program w C, w którym używam 3 przycisków, przy czym za pomocą każdego z nich mogę wykonać 3 różne akcje. Ustaw przerwanie od wybranego timera np.co 10[ms], następnie sprawdzaj stan przycisku, jeżeli wykryjesz naciśniecie przycisku to zwiększaj jakąś zmienną będącą...
Witam ;) Może w pętli która sprawdza stan przycisku (do..loop programu głównego, albo np w etykiecie obsługi przerwania od licznika) zastosować warunek i inkrementację zmiennej pomocniczej, która podczas gdy przycisk będzie przytrzymany będzie zwiekszać swoja wartość. Można zastosować póniej warunek...
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. 800 obrotów to daje impuls przerwania co 15us, a ja w pętli nic nie będę robił oprócz sprawdzania czy jest naciśnięty...
Witam, nie chcę zakładać nowego tematu, skoro tu jest o wiadomościach podstawowych ;) Otóż jest problem. Zrobiłem układ, w którym są cztery przyciski: set A, reset A, set B, reset B. A i B dałem na wyjścia i połączyłem z INT0 i INT1. W czym tkwi problem? Przerwania INT0 i INT1 reaguje jak należy, poza...
A może jednak spróbuj assemblera - przerwania są bardzo łatwe w używaniu. A co do sterowania diodami to : Napisz sobie dwie (lub więcej jak potrzebujesz) pętli w których masz zapisane sekwencje sterowania diodą i użyj przerwania timera do sprawdzania stanu na wejściach(przyciskach)- w zależności...
Moje pytanie brzmi czy "właściwy program" będzie wykonywany co 20ms?? Nie. Będzie wykonywany najszybciej jak się da. Wprawdzie ustawiłeś timer na jego przepełnienie co 20ms, ale nie korzystasz z niego do uruchamiania "właściwego programu". Aby to zrobić powinieneś: 0. zdefiniować zmienną globalną...
Czyli jeśli masz zewnętrzny przycisk to nie ma problemu - konfigurujesz go tak, aby generował przerwanie i już. Nie musisz wybudzać procesor, nic nie musisz sprawdzać. Ktoś wciśnie przycisk -> procesor się wybudza i robi co chcesz. Jeśli energia jest problemem to M88 zużywa jej na dzień dobry 2xmniej...
Witam, pytanie brzy bardzo amatorsko a jest stosunkowo trudnym zagadnieniem do poprawnej jego realizacji. W różnych realizowanych przeze mnie projektach nie było potrzeby do sprawdzania stanów klawiszy z dość dużą dokładnością jednak teraz nadszedł ten moment i prawdę mówiąc mam trudny orzech do...
Jeżeli ten program nic nie robi poza sterowaniem silnikami poprzez timery, to po co sprawdzać przycisk w przerwaniu? Sprawdzaj go po prostu w głównej pętli main i tyle. W zależności czy wciśnięty, czy nie, ustawiaj odpowiednie klucze, zmieniaj ustawienia timerów itp.
Albo zrobić to flagami. Rozwiązań jest wiele. Sam proponowałeś rozwiązanie z flagami? robiw Mozna z flagami. Usypiamy procka ale, gdy przycisk naciiśnięty zstanie wybudzony. Sprawdzamy flagę, stan przycisui i usypiamy, Sprawdzanie flagi jest potrzebne aby stwierdzić czy przed uspieniem przycisk...
Chodziło mi bardziej aby było tak:[syntax=vbscript] $regfile = "m8def.dat" $crystal = 1000000 Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portb.2 , Rs = Portb.1 Config Lcd = 20 * 4 Cls Cursor Off noblink '****************************...
Chyba było ustawione max w lewo - muszę poekperymentować z minimalnymi/maksymalnymi nastawami zmiennych. Zastanawiam się jak ustawiać timer1 aby po 20ms wysłał 5 impulsów o różnej długości dp pięciu serw. I po następnych 20ms- następny zestaw. Już wyjaśniam. Poniżej jest kawałek kodu za to...
Fakt, ze jest milion różnych sposobów na zrobienie tego. Ok spróbuję tym sposobem co mi podsunąłeś. W sumie nawet lepiej tak. Dzięki. Dodano po 5 Ok, coś tam skleciłem, jest to niepełny program, bo nie ma w nim np. ustawień dla Mute i trybu, oraz nie pokazuje na LCD wartości, ale to później....
Podczas próby połączenia z Internetem użytkownicy mogą otrzymać ten błąd 628: Połączenie zostało zakończone przez komputer zdalny, zanim mogło zostać ukończone. Często problem ten jest spowodowany niewystarczającą siłą sygnału i uniemożliwia połączenie z modemem. Jak rozwiązać ten problem? Przede...
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...
Ale nie wiem jak sobie z tym poradzić programowo. Nie szukałem, ale jest mnóstwo tematów do debouncingu na forum, a w ogóle w takiej sytuacji najlepiej przeglądać różne programiki na AVR. A ćwiczyć programowanie dobrze jest na komputerze PC z linuksem. Jak sprawdzić czy przycisk jest puszczony?...
Nic sobie nie robi z naciskania guzika bo właśnie obsługuje przerwanie. Ja bym to zrobił w ten sposób. Przerwanie od czujki uruchamia jakiś timer i kończy się obsługa przerwania. Timer odmierza czas i po jego upłynięciu sprawdza jakąś zmienną i w zależności od niej uruchamia alarm bądź nie. I tak jeśli...
Robię wielofunkcyjne urządzenie, które ma rezlizować kilka programów, przełączanych przy pomocy przerwani INT0. Tzn, program pierwszy wykonuje się w pętli while(1) tak długo, aż nie pojawi się przerwanie, które zakończy program pierwszy i rozpocznie drugi. Mój pomysł wygląda tak: uint8_t numerprogramu...
Przerwać delay możesz tylko przerwaniem. Jeśli chcesz mieć możliwość normalnie przerwania delay to rozbij je na sekwencje kilku mniejszych opóźnień pomiędzy którymi sprawdzaj stan przycisków. A najlepiej zrobić to przy pomocy timerów i przerwań.
Przypomniało mi się że kiedyś ktoś mi pokazał żeby przed sprawdzeniem ustawić sprawdzane piny na 1. Zrobiłem teraz tak plus usunąłem deleye tak jak powiedziałeś. I działa. Czyli obsułga przerwania wygląda teraz tak (reszta bez zmian): ISR(INT0_vect) { //funkcja obslugujaca przerwanie...
Zależy po co chcesz przerywać tę funkcję while(1), jeżeli tylko po to, żeby szybko wykonać inne zadanie związane z naciśnięciem przycisku to możesz t przecież zrobić w podprogramie obsługi przerwania i po skończeniu powrócić do pętli while(1). Jeżeli jednak chcesz bezwarunkowo wyjść z tej pętli to w...
1. Standardowy gameport nie ma możliwości generowania żadnego przerwania, natomiast port szeregowy (COM) - tak. 2. Dobrze byłoby oddzielić dwie kwestie : - Program w komputerze moze sie co jakiś czas, np. 1s(co przy dzisiejszych sprzętach nie zajmie to nawet 1 % mocy obliczeniowej) pytać mikroprocesora...
Jeśli obsługa guzików ma być sprzętowa to chyba tylko z wykorzystaniem INT0 i INT1. A jakby zastosować coś takiego? Dwie procedury obsługi przerwania, w których obsługa INT0 wyłącza INT1 i potem sprawdza stanu pinu PD3(? - tego od int1), czy aby nie zostały wciśnięte dwa guziki na raz (inna rzecz ze...
1. To czy port jest wyjściem czy wejściem jest zdeterminowane przez elektronikę układu i rzadko istnieje potrzeba zmiany tego statusu po jednokrotnym ustawieniu. W twoim przypadku ustawiasz DDRB=0xff na początku funkcji main() i nie ma potrzeby zmiany tego w każdym wywołaniu procedur diody1_4() i diody5_8()....
... i na wyjściu portb.1 ma się pojawić stan wysoki który ma trwać tak długo jak długo jest wciśnięty przycisk podłączony do linii portb.6,... A która to część programu sprawdza , czy przycisk jest wciśnięty , czy już nie jest :?: Jeśli myślisz że to ten fragment ... Loop Until Portb.6 =...
Jednka pojawil sie nastepny problem ktorego nie moge rozwiazac, jak badalem ten kod ktory mowilem, ze dziala; to duszac pare razy na przycisk program sie zawieszal. Wie ktos moze dlaczego? Może kolega rozwiązał ten problem? Szukałem podobnego rozwiązania i ten wątek okazał się bardzo pomocny, ale...
Rozumiem, że rozjaśnianie lub ściemnianie ma następować tylko przy wciśniętym przycisku. Wyrzuć podwójne sprawdzanie czy przycisk wciśnięty. Zamień miejscami inkrementację i dekrementację zmiennej I.
2. W trakcie obsługi przerwania przychodzi następne i czeka w kolejce, mógłbyś bardziej to objaśnić? Ja się postaram. Wciskasz przycisk więc wchodzisz w przerwanie i zerujesz jego flagę. Ale przycisk zadrżał, więc znów zostało ono wywołane tylko, że flaga I jest na czas obsługi wyzerowana. Więc nie...
Wiec tak: W ogóle wyrzuciłbym zmienna/flagę F. Nie jest potrzebna tutaj. W programie głównym zamiast sprawdzania F, sprawdzaj A, czyli warunek IF z przerwania przenieś do programu głównego, łącznie z zerowaniem A. W przerwaniu zwiększaj tylko A. Zamiast: If F = 1 Then Cls Locate 2 , 1 ...
Póki co jeden przycisk uruchamia pętle zmieniających się jpg ( animacja) a drugi miałby ją przerwać. Choć docelowo miałby ją przerywać odpowiedni sygnał z USB. Męczę się z tym backgrandworkerem, ale nie bardzo wychodzi. Jak wstawiam w Cross-thread operation not valid: Control 'pictureBox1' accessed...
Nie znam Bascoma Odpalasz timer, tak żeby generował przerwanie co 50 ms. W tym przerwaniu sprawdzasz stan portów i to w zasadzie wszystko. W pętli głównej monitorujesz ten stan i odpowiednio reagujesz.
Generalnie przy LEVEL przerwania są tak długo emitowane, aż zniknie ich przyczyna, w efekcie wywoływane jest ISR i natychmiast zgłaszane jest kolejne przerwanie. Musiałbyś więc po zmianie z LEVEL na RISING jawnie kasować flagę przerwania. W większości przypadków się więc nie używa LEVEL. Piszesz strasznie...
W ogóle zabierasz się za to źle - przerwania od przełączników to zły pomysł - poczytaj o drganiach styków i zobacz ile przerwań może wygenerować jedno przełączenie. Stan przycisków sprawdzaj cyklicznie w przerwaniu timera (są biblioteki Timer...).
Jak byś włożył minimum wysiłku i przeszukał elektrodę (temat wraca 5x na tydzień) to byś się dowiedział że tak się nie robi klawiszy, A mogę wiedzieć z czym jest problem odnośnie klawiszy? Ja w programie nie wyzwalam nic przyciskami tylko sprawdzam czy przycisk jest sprawny, szukając informacji jak...
Jak rozumiem ma być czytane przerwanie z klawiatury ( miedzy innymi ) , a czemu nie zrobić przerwania z jakiegoś timera które będzie cyklicznie sprawdzało pin podłączony z tym klawiszem ( przyciskiem ). Timera też wolałbym nie używać. Zamierzam użyć tych przerwań, żeby procesor przez cały czas w trybie...
Witam. Niedawno napisałem prosta funkcję obsługi klawiatury matrycowej 4x4. Chciałbym teraz poprawić troche tą funkcję i zrobić ją trochę bardziej profesjonalnie. Czy ma ktoś jakiś pomysł jak przerobić funkcję, żeby nie używać opóźnienia? oraz jak zastąpić while z oczekiwaniem na zwolnienie przycisku?...
Może przerwania wcale nie są generowane co 1s i inkrementacja zmiennej czas_przyciskania_plus odbywa się tak szybko, że szybko jest ona większa od 2? Twój warunek może być maksymalnie spełniony przez 1s w przypadku ciągłego wciśnięcia przycisku. Nie zamieściłeś całego kodu ale może zastąp warunek...
Witam, zbudowałem prosty układ do testowania przerwania zewnętrznego INT/RB0. Według moich założeń układ po wciśnięciu microswitcha powinien wygenerować przerwanie i naprzemiennie zapalać i gasić diodę na porcie D ;***** COMPILATION MESSAGES & WARNINGS ***** ERRORLEVEL -302 ; register in operand...
Witam! Napisałem sobie obsługę klawiatury matrycowej 3x4 w bascomie. Nie używam umieszczonej tam funkcji getkb(), ponieważ podłączona jest do różnych portów. Sprawdzanie wciśniętych przycisków chcę przeprowadzić w przerwaniu od wewnętrznego zegara TIMER0. Na ATmega32 wszystko bez problemu działa....
w jeden pin VCC około 4.5V ( z programatora mi tyle wychodzi ). pin po przeciwnej stronie idzie do INT1. Piny razem nie są ze sobą zwarte (na przycisku są 4 ale jeszcze nie odkryłem po co). Sprawdzałem sobie multimetrem i normalnie przy naciśnięciu pojawia się napięcie na INT1. Tyle wiem. Szczerze...
Przedstawiony na fotografii próbnik jest chyba zwykłym odpowiednikiem próbnika-neonówki. Ma metalową końcówkę, którą dotykając do metalowych części , będących połączonych z przewodem fazowym zapala lampkę (neonówka lub LED na bardzo mały prąd). Obwód zamyka się palcem dotykając metalowego przycisku na...
O eliminacji drgań pamiętam - na razie jest poprzez kondensator i opornik, lecz jak będę kończył program, to to dopiszę. Możesz mi wyjasnić dlaczego jest źle?: Sprawdzam sobie stan samego timera z częstotliwością 10hz w tym wypadku, a stanu przycisku nie sprawdzam, ponieważ jest wywoływany przerwaniem...
[syntax=c]uint8_t klawisz_wcisniety(uint8_t klawisz) { if (!(PINC & klawisz)) //sprawdzanie czy wcisnięty klawisz { _delay_ms(80); //drganie styków if (!(PINC & klawisz)) return 1; } return 0; // ponowne sprawdzanie czy wcisnięty klawisz }[/syntax] Tak wygląda funkcja do zatrzymywania...
Przy tym dysku przycisk smart jest nieaktywny.. Mam też program Victoria i tam też nie da się sprawdzić smart(Error reading smart) :/
próbowałem pomierzyć omomierzem, ale nie do końca wiem czy do dobrze robiłem, mianowicie od przycisku poprzez wszystkie elementy które są po drodze, przed rezystorem za rezystorem itp. aż do układu który tym przełączaniem zarządza, żadnych nieprawidłowości za bardzo nie napotkałem, rezystancje się zgadzały,...
masz tutaj moj kod, ktory robi dokladnie to co chcesz... ogolnie sprawa jest prostsza niz sie moze wydawac /* +————̵...
Moim zdaniem jak zrobisz prawidłowe procedury debouncingu (chociaż może nazwa nie jest idealnie trafiona), to żadne zakłucenia nie powinny tutaj przeważyć. Jeżeli np ustawisz tak timer, że przerwanie będzie sie "uruchamiało" co 10ms, następnie sprawdzasz wszystkie kolumny (czy tam wiersze). Tam gdzie...
Koncepcję mam taką: - ustawiam jeden timer żeby generował przerwanie co 20ms i w tym przerwaniu zwiekszam zmienną typu unsigned int o 1. Czyli przy wykonaniu 50 takich przerwaniń mam okres 1 sekundu. Zmienna niech będzie c. - w momencie wykrycia zamiany stanu przycisku np. B0 ustawiam zmienną określająca...
Jak pewnie wiecie od jakiś kilku generacji ipody nano mają usterkę związaną z przyciskami. Ten, który posiadam - 6 generacji nawet po kilku miesiącach odmawia posłuszeństwa. Zazwyczaj "wbija" się przycisk od uśpienia. Naprawa wydaje się prosta - wystarczy go rozebrać i podkleić aluminiową płytkę. Tyle...
Proszę o wyjaśnienie tematu flagi, najprościej dla topornych :D Właściwe wyjaśnił to kol: Potrzebujesz wprowadzić dodatkowe zmienne tzw. flagi. Niech przy starcie programu mają wartość 0, w pętli badaj stan przycisku i jeżeli wciśnięty zostanie przycisk pierwszy zmień stan flagi pierwszej na...
Raczej wentylatory, na początku nie słychać było różnicy między ustawieniami szybkości tych dwóch a teraz jest spora :v No ale też może troche hałasować hdd od starego komputera. No nie ważne, zobaczę czy problem leży po stronie przycisku. Dodano po 3 Jedyny miernik jaki miałem niestety miał...
W konfiguratorze LCD ten pin nie występuje w ogóle, więc w sumie nie wiem jak zadeklarowac, że go sie w ogóle używa.... config lcdpin Z częstotliwością nic nie grzebie, więc jest fabryczna, w kodzie mam polecenie " $crystal = 8000000 " . Oscylator rzeczywiście ma 8MHz, ale fabrycznie jest włączony...
przycisk do minusa, if portd.0 = 0 juz jest przerwanie wychodzi co 0,08 sek (mniej wiecej) wogole nie reaguje na przycisniecie... jest tez cos takiego jak programowa eliminacja drgan stykow, rzeczywiscie moze zbyt czesto sprawdza, ale to zmienie, narazie wogole nie chce ruszyc...
hmmm jeżeli chodzi o klawisze proponowałbym zrobić tak: linie z PCINTX podciągnąć rezystorem 1M do stanu wysokiego a następnie dać na przycisk który byłby zwierany do masy(linie jako wyjście) PCINT reaguje na każda zmianę stanu na pinach (wybranych) także zwierając linię do masy wywołujesz przerwanie...
Przerwanie dlugiej petli przyciskiem mozna zrobic dajac jakas zmienna globalna np stop typu bool, ktora jest =0, jak masz petle for to pierwsze co ma byc sprawdzane to czy stop=0. Pod przyciskiem stopu dajesz instrukcje stop=1, wtedy zmienna sie zmieni i petla ominie wszystkie instrukcje pozostale bo...
Poczytaj jak posługiwać się JTAG'iem. Jeżeli w programie AVR Studio naciśniejsz przycisk RUN to program będzie pracował normalnie, ale nie możesz mieć jednocześnie kontroli nad kodem oraz pozwolić na normalną pracę! Jak sobie wyobrażasz taką sytuację: debugujesz kod, gdy flaga = 0, ale w między czasie(nie...
Jeśli styczniki włączają się na dłużej to lepiej probkować stan portu w przerwaniu timera kilkanaście(dziesiąt) razy na sekundę i sprawdzać czy jest stabilny stan. Jeśli jest stabilny przez np 100ms to ustawić flagę. Tak jak próbkowanie przycisków.
Zrobiłem taki programik: 'Program do sterowania małych silników krokowych za pomocą ATMega8 i układu L6219 lub LB1845 'sterowanie ćwierćrokowe, zasilanie 30V 'set i reset zastosowałem w celach poglądowych- można- a nawet należy zastąpić to np.PortB=&B00001100 itp. $regfile "m8def.dat" $crystal...
Ja bym stawiał na brak debounce. Skoro sprawdzany jest stan przycisku to pewnie on do czegoś służy. Może do wyświetlenia informacji na wyświetlaczu. Jeżeli brak debounce to przerwanie to wywoła się pewnie z kilkanaście razy. Może być tez tak ze przepełnia się stos, kilkanaście razy 32 bajty.... i koniec...
Programator działa w 100% (zrobiłem na nim już kiedyś sonar), te rezystorki to chyba tylko zabezpieczenie przed uszkodzeniem portu LPT w komputerze w razie jakiegoś przypadkowego zwarcia. Mogę go odłączyć, ale raczej same kabelki nie powinny sprawiać problemów. W obecnym układzie, przed chwilą, zrobiłem...
Co do odświeżania masz gotowy kawałek w moim drugim poście. Po co sprawdzanie stanu przycisku co 4 ms? Jak chcesz pomiar temperatury co 1s, to dorzucasz odpowiednio skonfigurowane przerwanie z timer1. Zczytywanie co 100ms masz przecież zrobione flagą chyba że nie działa. co do przyciska masz w moim...
Zrób sprawdzanie godziny na jakimś przerwaniu z timera. Uważam że niepotrzebnie robi się to cały czas w głównej pętli. Ustaw timer żeby sprawdzał czas co 0,5 sek i to na pewno wystarczy. A w pętli głównej zrób tylko obsługę menu czy co tam jeszcze będziesz robił.
Nie chodzi mi o drgania. Potrzebuję zrobić najprostszą rzecz - po wciśnięciu na raz dwóch przycisków powinno się coś zrobić, co jest napisane w warunku, np. zapalić ma się dioda, wysłać potwierdzenie po USARTcie. Nie pointrzebuję żadnych przerwań. GPIO na przyciskach mam ustawione teraz na IN_FLOATING,...
Witam! Zostawiłem zeszłej laptopa na noc, by sprawdził mi dysk C, a mianowicie: "Skanuj dysk i spróbuj odzyskać uszkodzone sektory" Znalazł mi na tym dysku blisko 500 uszkodzonych klastrów. Uruchomiłem z linii komend chkdsk, według instrukcji jakie znalazłem na google: chkdsk /r C: I zrestartowałem...
Witam! Wczoraj po rozkręceniu laptopa znajomej i wyczyszczeniu układu chłodzenia, zrobiłem także porządki w systemie. Na koniec sprawdziłem jeszcze stan dysku za pomocą HD Tune. Parametr C5 (Current Pending Sector Count - liczba sektorów niestabilnych) wynosił 1 i był podświetlony na żółto. Czyli sektor...
1. Zrób zmienną globalną (boolean) np. o nazwie: Przerwij. 2. W pętli sprawdzaj jej wartość:[syntax=delphi]Przerwij:=false; ... costam1<>costam1 do begin // //twój kod tutaj // Application.ProcessMessages; if Przerwij then break; end;[/syntax]2. A w zdarzeniu onClick tego...
Też myślałem nad takim rozwiązaniem "polling mode" ale moim zdaniem przy tak krótkich impulsach nic więcej nie zrobię na tym AVR bo będzie non stop sprawdzał bit przy którym będzie miał odczytać port. Z analizatora stanów wyliczyłem że jeden dźwięk ma 64 próbki na L kanał i 64 próbki P kanał czyli razem...
Witam, Wczoraj przerwałem CHKDSK (przy poziomie 4 z 5). Wszystko było, ok sprawdził 4/5 etapów ale trwało to bardzo długo więc zrestartowałem laptop przyciskiem żeby ponownie włączyć sprawdzanie później w nocy. Komputer sie od tego momentu restartuje ale nie może się teraz uruchomić poprawnie. F8 i...
Czy ja wiem, czy mi tak strasznie ciężko idzie..... Po prostu nie zrozumieliście czego tak naprawdę nie rozumiem :D Przez cały temat patrzyłem pod kątem funkcji opóźniającej, a wam chodziło, abym napisał zupełnie inny kod niż tu - [url=]Tu przez co długo "rozmawialiśmy" :P. Rzeczywiście ten kod który...
Zacznijmy od tego, że w poprawnie napisanym programie do sprawdzania stanu przycisku nie używa się ani przerwania od przycisku (bo to nie ma prawa działać), ani pętli zdarzeń (bo jest to optymalne i nie ma sensu). Cała funkcjonalność programu, o ktrórym mowa, powinna być zrealizowana w przerwaniu...
Dzięki za wszelkie sugestie i dużą dawkę doświadczenia. W przerwaniu sprawdzam 2 ostatnie stany jeśli są takie same zakładam że przycisk został wciśnięty , wszystko funkcjonuje jak powinno. W przyszłości planuje wykorzystać rozwiązanie zaproponowane przez Pana BlueDraco z analizą 3 ostatnich stanów. Jeszcze...
W setup() powinieneś zainicjować zmienne przycisk_czas oraz uzbrojenie_czas. Podpięcie przerwania do PRZYCISK powinno być również setup(), w funkcji zmiana() możesz sprawdzać stan alarmu (przycisk_czas < millis()) i wykonywać dalszą część kodu. W obecnym stanie, w pętli loop() nie wiadomo ile...
Tu masz gotowca ale nie rozumiem po co ci przerwania? Chyba, że od timera, którym co jakiś czas będziesz przemiatał matrycę sprawdzając czy klawisz jest wciśnięty. Dodano po 29 Jak ci bardzo zależy to: - ustawiasz na C1-4 stan niski na R1-4 wysoki - dodajesz 4 diody (Schotky-ego) pomiędzy...