Prowadzący może też docenić Twoje eksperymenty, których efektem jest opinia o całkowitej nieprzydatności tego mechanizmu w projekcie. Możliwość podłączenia przerwania masz w zasadzie wszędzie. Sens, przynajmniej w projekcie który przedstawiłeś, niestety nigdzie wg mnie...
Ja do obslugi klawiatury uzywam przewaznie kodu, ktory jest w plikach w zalaczniku. W głownej peti programu musisz umiescic wywołanie Key_Service(); i zadbać o to, aby w przerwaniach od timera odpowiednie zmienne byly deinkrementowane.
Niestety klawiatura matrycowa wymaga nieco zachodu z jej obsługą, za to wymaga mniejszej ilości pinów - coś za coś :) Nie wiem jakie dodatkowe funkcje będzie miał program, ale z reguły skanowanie klawiatury robi się w oparciu o jakiś timer, bo dodatkowo należy eliminować drgania styków. Strona ... korzystaj do woli, a w razie problemów pisz na forum...
Czyli zamiast robić na przerwaniu INT0 zrobić na timerze? Nie. Jeżeli chcesz to pozostaw przerwanie INT0, ale w funkcji obsługi przerwania ustawiaj jedynie flagę, a w main() umieść resztę kodu wraz z opóźnieniami i pętlami, czyli gdy flaga zostanie wykryta w main() to wołaj swoją funkcję checkKeyboard(). I staraj się zawsze stosować zasadę, że przerwanie...
Robie projekt na ARMie i potrzebna mi jest klawiatura matrycowa 4x3. I teraz mam pytanie jak ja zrobic zeby dzialala na przerwaniach. Nie moge jej skanowac ciagle bo w tym czasie procek jest zajety czyms innym. Chodzi o to zeby np. jesli zostanie wcisniety jakis klawisz przyszlo przerwanie na ktorys z pinow, a w procedurze oblsugi tego przerwania zostaly...
Jeżeli zmienimy kolejność to co wtedy odczytamy skoro szyna nie będzie aktywna. Nie rozumiesz. Chodzi o to, żeby czytać stan klawiatury przed zmianą aktywnego segmentu. U Ciebie to działa tak: - zmieniasz segment - czekasz 1us na ustabilizowanie się nowego stanu - odczytujesz klawiaturę - wychodzisz z przerwania w mojej wersji to działa tak: - czytam...
3) czy połączenie z linii wejściowej (do uP) diod i złączenie ich katod i podłączenie do INT0 wystarczy aby wywołać przerwanie. Czy może jest inny sposób na wywołanie przerwania wciśnięcia klawisza Pozdrawiam Propa Klawiatura z definicji nie jest szybkim urządzeniem a więc nie musie pracować na przerwaniach. A poza tym konstrukcja matrycowa za bardzo...
Witam, chcę zrobić urządzenie które będzie miało niski pobór prądu bo chcę, żeby było zasilane z baterii(prócz klawiatury i karty SD chcę podłączyć jeszcze mały wyświetlacz i transmiter RF). Chciałem na razie uruchomić to na bibliotekach HAL.. Dla próby mam Nucleo z uC STM32L452RE. Zdecydowałem się na niego, bo ma port SDIO, przez który chciałem podłączyć...
gummis: kolega pisał wyraźnie o uC AVR, a nie o '51 ;-D. ale kumam czacze :) wszysko OK. mimo ze wolę C niż jezyk maszynowy z tymi wszystkim jego cyferkami :D Osobiście muszę się z Wami zgodzić że macie rację w kwestii przerwań tylko ze jest jedno ale. Chodzi o tę klawiaturę. Z portów nie da się zrobic użytku z ww. opisanych powodów. Pozostaja ekspandery...
Załączam pełny program obsługi klawiatury 4x4. Obsadź swoje procedury i będziesz miał gotowy program. Nie zapomnij pozmieniać portów dla kolumn i wierszy, wartości kwarcu, itp. W procedurze obsługi przerwania możesz dołożyć dodatkowe czynności. Wartości kodów klawiszy (obliczane z kolumny i wiersza): - 0..9 - 0..9 - A..D - 20..23 - * - 10 - # - 12
Sprawdzenie czy klawisz wciśnięty jest długo czy krótko jest bardzo proste do wykrycia jeśli czytasz dane z klawiatury używając przerwań. Zawsze po wciśnięciu klawisza zapisujesz sobie nr ostatnio wciśniętego klawisza. Jeśli przyjdzie przerwania a żaden klawisz nie jest wciśnięty to ustawiasz tą wartość na 0. W obsłudze klawiatury sprawdzasz czy aktualnie...
a tu się mylisz i to bardzo klawiatura tam napewno działa a jak to już piszę wykonując skanowanie klawiatury cztery porty sa wejsciami a na 1 z 4 nastepnych wystawiasz 0 logiczne i czytasz jesli odczytana liczba jest taka jak wyslana to nic nie przyciśnięto jak mniejsza to nacisnieto 1 z klawiszy 1 rzędu następnie wszystkie porty do + poza 2 linią i...
wyjaśnij o co chodzi ci z tym przerwaniem ? jesli chcesz by klawisze były sprawdzane w przerwaniu zastosuj ten schemat : #include <avr/io.h> #include <avr/interrupt.h> #define F_CPU 1000000UL // flagi klawiszy np. key1 => PD0, .... volatile int key1=0, key2=0, key3=0, key4=0, key5=0; //przerwanie odczytuje jaki klawisz zostal wcisniety...
Witajcie moi drodzy. Udało mi się obsłużyć (częściowo) klawiaturę matrycowa. Proszę o sprawdzenie kodu (kod bazuje na przykładzie dondu bo przez rs232 wysyłam to co kliknięto) http://obrazki.elektroda.pl/2692005700_1... 1. Co można ulepszyć/usprawnić? 2. Czy idea (oraz tryby pracy portów) są poprawne? 3. Czy wartość rezystora jest odpowiednia?...
Witam. Nie mogę sobie poradziź z wprowadzaniem liczb dwucyfrowych z klawiatury matrycowej. Moja klawiatura jest obsługiwana z wykorzystaniem przerwania od Timera0. Jeśli możecie to prosze o pomoc i propozycje rozwiązania tego problemu. Poniżej zamieszczam część mojego kodu programu ....... [wyciety fragment] ....... Do 'pętla nieskończona DO...
Musisz wyzerować flagę, a czy zrobisz to normalnie czy przy użyciu tej bzdurnej biblioteki to już nie ma znaczenia. 4\/3!!
col<<=1 o to mu zapewne chodzi. nop wystarczy a większe opóźnienie jak już daj w innym miejscu. Ja te klawiatury obsługuje w przerwaniu, więc to inna historia
Cześć. Zrobiłem coś takiego - czyli odczyt stanu klawiatury matrycowej na przerwaniach dla ATMega128. Kod w załączniku. 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...
Przeniosłem z: Schematu/instrukcji...
Mam napisać program : -po naciśnięciu klawisza klawiatury matrycowej dioda będzie migała co sekunde ale mam co zrobić wykorzystując przerwania timera sory mistrzu ale sam napisałeś że chcesz taki program więc nie mniej teraz do nikogo pretensji że coś innego sobie teraz wymyśliłeś
Debouncing w przerwaniu - tylko nie mów, że robisz to przez aktywne oczekiwanie wewnątrz przerwania. Jeśli tak, to zauważ, że to, że skasowałeś flagę przerwania i jesteś w przerwaniu wcale nie oznacza, że flaga nie może zostać ustawiona ponownie. Możliwy jest taki scenariusz: wciskasz przycisk, pojawia się zbocze opadające które ustawia flagę a więc...
Witam! Oczywiście, można tak zrobić. Sygnał z przycisków należy wtedy zsumować za pomocą diod i dać na pin przerwania. Jeśli klawiatura będzie matrycowa, to jeżeli np multipleksowane będą kolumny, to należy załączyć zasilanie na wszystkich kolumnach i sumować sygnał z wierszy, a następnie podać go na pin przerwania. Znalazłem także jeden błąd w kodach...
Rozwiązanie na ADC nie wyklucza użycia przerwania.
Pytałeś o wybudzanie procesora, odpowiedz masz w linku dla przykładu klawiatury matrycowej. W ogóle lepiej zastosuj power-down A wybudzić możesz tylko stanem niskim przerwania int0. A jeśli chodzi o przerwania pin change warto zapoznać sie z rejestrami z tym związanymi a wszystko stanie się jasne. Chodzi o to ze przerwania zostaje wywołane, jeśli choć...
Witam. Od jakiegoś czasu zajmuję się mikrokontrolerami, ale programuję wyłąćznie w asemblerze. Teraz muszę się przesiąść na język wyższego poziomu, ze względu na konieczność prowadzenia obliczeń. W związku z tym mam kilka pytań. Jak najefektywniej obsługiwać klawiaturę matrycową w C (cyfry + kilka klawiszy odpalających funkcje specjalne) ? Jak obsługiwać...
Czy takie rozwiązanie jak wyżej podał eleproject jest ok a jeśli nie to jak zrobić obsługę klawiatury przy użyciu przerwania?
Dziękuje koledze perlon i dondu za zainteresowanie, ja dopiero zaczynam zabawę z prockami Atmela i Bascomem więc wolałem zapytać. Drabinka z rezystorami fajna sprawa ale wolę proste rozwiązania. Więc skoro mogę użyć wejścia programujące to rozwiązuje mój problem, zrobię klawiaturę matrycową z wykorzystaniem przerwania.
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 wyjątkową sytuacją gdy wprowadzasz uC w głębokie...
Ale po co się męczyć, skoro Atmel napisał [url=http://www.atmel.com/dyn/resources/... aplikacyjną na ten temat, gdzie jest matrycowa klawiatura, działanie na przerwaniach i niski pobór prądu.
jak już chesz koniecznie marnować wolne piny (bo może masz ich zbyt wiele) to lepiej podłącz sobie te przyciski przez 74HC30 i będziesz miał jeden wspólny sygnał dla przerwania INT jednocześnie wejścia 7430 podłącz pod jakiś port i w przerwaniu odczytasz sobie ich stan. Nie jest to najlepszy sposób bo to samo można zrobić w przerwaniach i uzyć klawiatury...
... Zumek thx wielkie... A co do c i bibliotek to proponuje szukac info wszędzie byle nie avr-lib :) Google bardzo pomaga... Czyli kto szuka nie błądzi.. :) A przy okazji nasze forum jest bardzo dużą bazą danych. Przy okazji dodam że poszukuje obecnie programu w ce do obsługi klawiatury matrycowej na przerwaniu. Pzerwaniu tzn mam na myśli przerwanie...
Witam, Niestety ale strasznie źle podchodzisz do tego zagadnienia bo w przerwaniu dajesz jakieś masakryczne opóźnienia i pętle, które mogą się nie skończyć nigdy. Zdecydowanie odradzam takie pomysły. Przerwania dla klawiatury matrycowej, owszem można używać ale postaraj się skorzystać z flag i te sprawdzania, które tu wykonujesz w przerwaniu przenieś...
Witam. "Przerabiając" książkę p. Tomasza Francuza "Język C dla mikrokontrolerów AVR" natknąłem się na problem obsługi klawiatury matrycowej w przerwaniach. Klawiatura ma wykorzystywać kolejne ustawianie stanu niskiego na pinach na potrzeby multipleksowania. Niestety wciskanie przycisków klawiatury nie powoduje żadnej reakcji. Co ciekawe (dla mnie) po...
Mimo wszystko sam mikrokontroler nie jest w stanie zasymulowac matrycy w taki sposob, jak to robi MT8808. Rozwazalem ta opcje i mialem klopoty, gdzie ginely mi klawisze albo wyskakiwaly po dwa razy, i czasem zacinalo sie to w calosci. MT8808 rozwiazal wszystkie te klopoty. Tak jak napisałeś, poszedłeś po najmniejszej (drogiej) linii oporu. W sofcie...
Chcesz wyzwalać przerwanie w chwili naciśnięcia klawisza ? Tak zrozumiałem, jeśli nie masz za wiele tych klawiszy w układzie np. 2 to możesz je po prostu podłączyć wprost na końcówkę odpowiedzialną za wyzwolenie przerwania INT0, INT1. Pamiętaj tylko o tym aby przełącznik spolaryzować do plusa zasilania opornikiem oraz równolegle do niego podłaczyć kondensator...
Możesz tak zrobić, przy czym na przerwaniach łatwiej. Bo musisz jeszcze pomyśleć o eliminacji drgań styków, przerwania wywoływane z timera są do tego idealne.
seba_x , dziękuję za pomoc dostosowałem Twój przykład do Bascoma i udało się programik działa. Programik usytawiłem jako podprogram przerwania i zadziałało. Dzięki za pomoc.
Proszę nie zwracać uwagi na # itp. Program wpisuję ręcznie z klawiatury DSM, co wyklucza niepoprawną składnię. W książce panów Gałka (instrukcji do DSM 51) w załączniku D 'Urządzenia wejść/wyjść DSM-51' znajduje się tabela. Są tam adresy B i Hex m.in sterownika przerwań, klawiatury matrycowej, wyświetlacza LCD, itp) Rejestr portu A układu 8255 znajduje...
Kolega niech raczy zauważyć że kontraktron ma coś takiego jak drżenie styków. Może być tak że przerwanie jedno twoje załaczenie potraktuje jak wiele zboczy je wzywalających i cały pomiar weźmie w łeb bo się wykona po prostu wielokrotnie. Musisz użyć więc kolejnego sprawdzania stanu styku juz po wykonaniu przerwania tak aby się upewnić ze jest to "trzymanie"...
Idea jest zawsze taka sama, bez wzgledu na procesor. Jezeli Verengard nie uzywa zadnego OSa to moze zrobic to na przerwaniu od timera.
Dostałem wskazówki do programu tylko nie wiem jak zastosować je w praktyce prosiłbym o pomoc o pokazanie tego w programie Napisz obsługę klawiatury matrycowej 3x4 najlepiej w przerwaniach, tak by w każdej chwili można było przerwać wyświetlanie kolejnych napojów. Możesz to też zrobić przed zmianą komunikatu przez skok do procedury obsługi klawiatury....
Mam takie pytania, co się dzieje kiedy przytrzymasz przycisk ? Czy będzie zmieniał stany w takt przerwań procesora czy nie ? I dlaczego kolega nie wykorzystał połączenia klawiatury matrycowej 4x3 ? Bo troszkę za dużo tych diod a mozna było prościej oraz wykorzystać przeżutniki jak wspomniał kolega wyżej.
Co do odmierzania czasu to możesz to zrobić na wiele sposobów. W normalnych pętlach albo klawiaturę obsługiwać w przerwaniu, wtedy opóźnienie definiuje to przerwanie i nie angażuje zbytnio procesora. A z drugiej strony to poszukaj na forum, sam tu umieszczałem program obsługi klawiatury matrycowej.
a_noob -> od tego są przerwania i timery. Moja tablica 8*128 ma timer z preskalerem 64 i radzi sobie w między czasie z klawiaturą PS2, RSem232, sterowaniem jasnością, pamięcią SPI, zegarkiem i termometrem I2C. Polecam lekturę przerwań, od kiedy je poznałem programowanie stało się prostsze.
a jeśli nie sprawdzasz klawiszy w przerwaniu tylko w pętli głównej to możesz użyć zwłoki 25 mS i ponownie sprawdzić stan jeśli zgodny to znaczy że klawisz wciśnięty
Witam, Chciałbym napisać program (w Codewarriorze) który na wyświetlaczu 2x16 na grónej linijce będzie odliczał sekundy a na dolnej wyświetlał dane zczytywane z klawiatury matrycowej. Jak to najprościej zrobić? Wydaje się że trzebaby użyć przerwań wewnątrz których byłby napisany podprogram który by co sekundę zmieniał stan sekundnika, a w głównym programie...
Witam, sam wspomniałeś, że działało przed czyszczeniem, więc spory wkład ma tu błąd użytkownika. Wszystko się zgadza, klawiatura działała także pewnym jest że wina leży po mojej stronie. Niestety nie potrafie przywołać żadnego zdarzenia które mogłoby spowodować zaistniały problem. Na pewno walczyłem z wtyczkami aby je wypiąć i wstępnie podejrzewałem...
Witam ! Mam taki niby prosty program do obsługi klawiatury matrycowej 4x4 bez użycia przerwań. Niestety przy kompilowaniu wyskakuje mi błąd: "expected identifier or '(' before '{' token" i pokazuje na pierwszą użytą klamrę. Co jest nie tak ? #include <avr/io.h> #include <util/delay.h> #include <HD44780.h> #include <HD44780.c>...
W c ten program gdzies w internecie widziałem.. Bedzie wymagał być moze małego dostosowania. Mam go ale niestety w asm pod atmege 16. ; Programowalny pilot RC5, obsługa interfejsów optycznych i pamięci EEPROM ; Rafał Baranowski (C) 2004 .INCLUDE "m16def.inc" ; SEGMENT DEKLARACJI .EQU OSC_FREQ= 1000000; częstotliwość pracy w Hz .EQU...
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 klawiatur obsługiwanych matrycowo obsługuje...
matrycowa przerwania klawiatura matrycowa atmega klawiatura matrycowa
yanosik pliki pluć olejem dioda power mruga toshiba
wkrętarka milwaukee milwaukee klucz
Gigabyte GA-M61PME-S2 brak obrazu, brak beep, czarny ekran po defragmentacji Windows XP Układ wykrywający spadek napięcia 230V AC – transformator, komparator, przekaźniki Finder, Relpol, Schneider