Tutaj nie ma znaczenia jak często host będzie żądał obsługi. Jeśli program ma być napisany zgodnie ze sztuką to musi obsłużyć taka ewentualność. Najczęściej transmisja host -> klawiatura odbywa się w sytuacji naciśnięcia klawiszy CapsLock, NumLock (bo wtedy host zapala odpowiednią diodę na klawiaturze) oraz w sytuacji resetu systemu (np po włączeniu...
Nie no to jakas sieczka jest delay ms(20) w przerwaniu? ta obsługa to chyba długa praca typu aby działało. Obsługę takiej klawiatury najlepiej zrobić w przerwaniu jakiego timera, np co 50ms. 2 kolejne równe odczyty równoznaczne z wciśniętym klawiszem. Zadem problem dorobić opcje dla długiego przytrzymania klawisza. n kolejnych równych odczytów. A reszta...
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.
Nie Pan, a Ty. :) Parę lat już się w to bawię :) ex-or sugerował, żeby w jakiś sposób analizować czas zmiany stanu klawisza i później logiką w sofcie to rozkminiać. Np. wciśnięcie ALT, wciśnięcie A, zwolnienie A, zwolnienie ALT daje w efekcie ALT + A, natomiast, wciśnięcie CTRL, wciśnięcie ALT, wciśnięcie B, może nie dać sekwencji CTRL + ALT + B, ponieważ...
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...
cytat : " A oto sposób podłączenia klawiatury. Na tym samym porcie co moduł LCD- podłączyłem klawiaturę, nie zauważyłem żadnych przekłamań transmisji do wyświetlacza podczas działania obsługi klawiatury (kilka mikrosekund zmian na lini danych LCD nic nie przekłamie, bo LCD ma na wejściu filtry RC i jest powolne): " Nie chcę się wymądrzać ale LCD nie...
Z czasem 1 sekundy podałem przykładowo, może być np. 0.5 sek, albo 1,5 sek. Rzeczywiście tu nie gra roli czas. W głównej pętli muszę jezcze obsłużyć wyświetlacz i parę czujników. W przerwaniach chodzi jeszcze coś. Klawiatura musi byc w przerwaniu.
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...
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...
Witam ponownie. Przeprowadziłem wczoraj kilka prób i doszedłem do wniosku że problem z działaniem klawiatury nie wynika z błednego oprogramowania. Co zauważyłem: w czasie gdy żaden przycisk nie jest wciśnięty napięcie pomiędzy wejściami a wyjściami jest około +5V Gdy wgram program który ma za zadanie jedynie wykryć przerwanie i wyświetlić na wyświetlaczu...
LIVE cd mini XP we wszystkim klawiatura i myszka bez problemu śmiga. A jeszcze zobaczyłem, że w zasobach jest konflikt sprzętowy na przerwaniach w myszce i klawiaturze... Dodano po 6 Klawiatura nie działa tylko w XP.
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...
Magiczne hasło brzmi PULL-UP. Sprawdź w datasheet i tysiącach publikacji w sieci.
RTFM, pdf nt. ATMega32, strona 19: Bit 3 – EERIE: EEPROM Ready Interrupt Enable Writing EERIE to one enables the EEPROM Ready Interrupt if the I bit in SREG is set. Writing EERIE to zero disables the interrupt. The EEPROM Ready interrupt generates a constant interrupt when EEWE is cleared. Gdyby się nie dało zrobić jak pisałem tobym Ci głowy głupotami...
Wyświetlanie: - inicjalizacja wyświetlacza 4 lub 8 bitów + procedura ustawiania kursora + procedura zapisu do wyąwietlacza itp Klawiatura: - procesor wyposażony jest w uart i łatwiej będzoie jego użyć. W tym celu potrzebna inicjalizacja prędkości i systemu przerwań. - w przerwaniach odbierasz znaki - potrzebny będzie parser realizujący funkcje jak kasuj...
Napisałem program do sterowania serwami z wykorzystaniem PWM oraz wszystkim ma sterować klawiatura podpięta tylko do przerwania INT0 (wciśnięcie klawisza na klawiaturze powoduje odpalenie przerwania oraz zmienia stan jednego portu. Poniżej zamieszczam kod. #include <avr/io.h> //#include <avr/signal.h> #include <avr/interrupt.h> #define...
Może kolega kolegi pisze tylko zegarki?:x (Sorry za złośliwość). U mnie zawsze jest coś w main loopie;) Kilka razy mi się zdarzyło że wyglądała tak: while(1) { Func1(); Func2(); Func3(); Func4(); } Ale przeważnie pętla główna i tak ma 1 / kilka(i więcej) stron (: Sorry pewnych rzeczy nie da się skrócić:) W przerwaniach powinno się robić rzeczy które...
Pętla oczywiście "stoi" i czeka na naciśnięcie klawisza. Tak że na razie nie udało mi się wsadzić tej funkcji w przerwanie. Ponieważ cała reszta programu jest w przerwaniach to na razie mi to nie przeszkadza. A z pomysłu z helpa też nie mogę skorzystać bo też potrzebuję UART-a. Spróbuję jeszcze z Getatkbdrow(). Ale oczywiście to że pętla "stoi i czeka"...
Otóż napisałem taki programik, ale po wciśnięciu dowolnego klawisza klawiatury dostaję zawsze 1 zamalowany prostokąt. Przed mainem deklaruję zmienne volatile. W mainie żądam przerwania zboczem opadającym na int0 W przerwaniach składam daną, nie zrobiłem zabezpieczenia przeciw 'fałszywemy' zboczu, ale nawet gdyby powało to powinienem odbierać różne krzaki......
Troszkę masz to rozbudowane. Ja posiadam identyczną klawiaturę do twojej. Ja nie sprawdzam naciśnięcia klawisza na przerwaniach tylko w pętli. Ja rozwiązałem to tak. Przy takim rozwiązaniu nie ma powtarzania klawisza przy ciągłym wciśnięciu ale można to skonfigurować przez polecenie Debounce Doda że ten kod działa w moim sterowniku i nie miałem z nim...
Witam...Dlaczego przerwania z Timera0 generowane nie sa zgodnie z dokumentacja? chciałbym zrealizować generator sterujący pinami portu PC0-7...w taki sposób aby wartości z tabeli --- unsigned char GenTab DDRC = 0xFF; // port C jako wyjscie 11111111 CLI(); //disable all interrupts TIMSK = 0x01; //timer interrupt sources TCCR0 = 0x00; //stop OCR0...
myszka była sprawdzana na innym kompie -działa prawidłowo, a inna myszka na moim kompie działa tak samo tzn. wiesza się. - wiec jakiekolwiek problemy po stronie myszki możemy odrzucić. w tej chwili działam na czystym, świeżo zainstalowanym systemie, wcześniej problem występował i na w2k i na wxp po re-instalacji obydwóch - problem nie znika. - problemy...
To zapewne nie przechodzi przez kompilację: Pułapka 1: Zerowanie bitu przez wpisanie jedynki Czyli zamiast zgasić flagę ustawiłeś ją ponownie :) Inna sprawa że robisz to niepotrzebnie, ponieważ flaga ta jest gaszona sprzętowo zaraz po wejściu do funkcji obsługi przerwania: Bit 6 – INTF0: External Interrupt Flag 0 ... The flag is cleared when the...
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
Sprawdzić w nocie katalogowej pod jakim adresem powinno być (w każdej jest "Register summary") i wpisać. Np. dla ATmega8515 (i pewnie większości pozostałych) będzie tak : #define GICR 0x3B i po tym dopiero może być #define ENABLE_INTO_FALLING ... BTW. Prawidłowo to powinno już być w pliku nagłówkowym io.h . Może masz niezadeklarowany typ procesora ?...
Jedynym wyjściem zdają się być przerwania, obsługę klawiatury należy zrobić w podprogramie przerwania INT0 lub INT1, poczytaj ten temat :-) http://www.elektroda.pl/rtvforum/topic10...
Mam własną procedurę ale działa na zasadzie mnożenia *10 wpisanej do tej pory wartości i dodawania numeru klawisza (0-9) wraz z kontrolą długości liczby, formatowaniem wyświetlania na LCD, obsługą klawiatury w przerwaniu i innymi bajerami. Jak chcesz mogę podesłać Ci odpowiednie procedury. BTW: jaki masz uC ?
Musisz wyzerować flagę, a czy zrobisz to normalnie czy przy użyciu tej bzdurnej biblioteki to już nie ma znaczenia. 4\/3!!
Moim zdaniem masz żłe napisaną obsługe przerwania. Procesor jak wejdzie w przerwanie to w niej wisim i wisi. Mogą być problemy ze stosem. Ja bym to napisał tak ze timerem bym wykonywał akcje a w przerwaniu ustawiał flage wciśniętych klawiszy. Otrzymujesz przerwanie i zapisujesz do zmiennej stan klawiatury. W przerwaniu z Timera sprawdzasz jaki stan...
Witam, klawiatura nie potrzebuje konkretnych przerwań do działania, więc powinno się to dać się łatwo napisać. Na tym etapie problem jest raczej brak kawałka programu, który by można przetestować, niż zablokowane przerwania. Pozdrawiam.
Hmm, 33 to 3x11. 2x11 zrozumiałbym bez problemu bo jeden raz to wciśnięci e klawisza a drugi to jego zwolnienie. Trzeci (a w zasadzie drugi) to być może autorepeat ale teraz to zgaduję. Na koniec transmisji z klawiatury trzeba dokonać potwierdzenia na linii zegara. Być może jak tego nie robisz to klawiatura wysyła jeszcze raz. upanie
Wklej może printscreeny z przerwaniami i z tymi alertami.Sądzę że przekładanie kart nie da oczekiwanego efektu.Pomyśl może jednak o klawiaturze USB.Lub w biosie masz może urządzenia które możesz wyłączyć,których nie używasz,np.porty COM i Parallel,zwolnisz przerwania.
Faktycznie aktywnym stanem jest zero i wtedy ten fragment kodu nie powinien dać żadnego rezultatu, ale co dziwne cokolwiek nacisnę i tak się wykona. Znaczy, dlaczego nie. Jak wcisnąłeś przycisk 0, a sprawdzasz 2, to przerwanie sie wygeneruje, ale na dwójce jest stan wysoki, to warunek (pierwszy) zadziała. Jak sprawdzam czy stan jest równy zero to też...
W takim przypadku ja zrezygnowałbym z INTów i przeszedł na zwykłe skanowanie klawiatury za pomocą timera i przerwania z niego - łatwo zrobisz eliminację drgań styków.
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.
Zacznij od przerwania timera.
Z tymi sterownikami nie maiłem do czynienia ale początek opisu wskazuje, że służą do obsługi code page - czyli zestawu znaków (np polskie litery) Co do programowania kontrolera przerwań to znalazłem taki papier: http://sirius.cs.put.poznan.pl/~inf94333... Trzeba pamiętać, że dostęp do rejestrów HW jest przez rozkazy assemblera in/out i nie jest...
Taka rada stan klawiszy najlepiej odczytywać w przerwaniu timera.
Odpinałeś klawiaturę od płyty? Co dzieje się z wentylatorami po uruchomieniu z kabla? Mogłeś wlutować nieprawidłowe taśmy (co najczęściej się zdarza - przeplot innego modelu zwieraja do linii przerwania IRQ i zawiesza urządzenie po drugiej stronie). Odłącz T-conn matrycy i uruchom się na monitor zewnętrzny. Klawiatura pewnie wróci.
deklarujesz skok do przerwania pod jakims tam adresem: .org INT0addr rjmp klawiatura teraz deklarujesz skok do resetu .ORG $000 rjmp reset reset: i dalej jakis kod... tyle ze ten kod zaczyna sie zaraz za rjmp RESET jednoczesnie zamazujac skok do Twojego przerwania INT0. Zakrecone no nie?;]
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...
Udało mi się wywołać taki błąd (wkładam dyskietkę z terminalem kiedy na animacji dyskietka jest wkładana). Nie jest to wina klawiatury. Nie jest to błąd konwertera PS/2 -> amiga. To prawdopodobnie jakiś bug w CIA. Choć nie wiem czemu, po zablokowaniu przerwania klawiatury z CIA błąd nadal się pojawia. System oczekuje jakiejś konkretnej wartości po resecie?...
Ponieważ tzw. casting w BASCOMie jest nieco zbyt prosto zrobiony to proponuję zrezygnować z: Dim Xl As Word Dim Xh As Word A w przerwaniu pobierać zawartość z rejestru ICR za pomocą specjalnie generowanej dla tego celu zmiennej typu Word: Capture1 . Pętlę Do..Loop zamieniłbm na sprzętowe porównywanie i kasowanie licznika przez CTC. Niech takimi rzeczami...
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...
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...
Naprawiałem kilka c975 zalanych, więc na klawiaturę przerwąnie pomaga wymycie w wanience, zresztą w większości motek. Robiłęm ostatnio V3, L6, C975, E1000 po zalaniu w których nie działałą klawiatura i kąpanie w wanience + cleanser, zawsze pomagało. Pozdrawiam
Przerwanie oparlem o wywolania DOS-owe XOR_BX,BX -> zerowanie BX XOR_CL,CL -> zerowanie CL POCZATEK: MOV_AH,08H -> ustawia ze odczyt klawiatury INT_21H -> wywolanie przerwania odczyty klawiatury MOV_CH,AL -> do CH znak ASCII klawisza nacisnietego CMP_AL,13 ->sprawdzenie czy ENTER JNE_DALEJ ->jak nie ENTER to skacz dalej CMP_CL,1...
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...
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ś
Wydaje mi się że powinno to zadziałać. Podziel sobie program tak aby najpierw odbierał kod w przerwaniu INT a inny podprogram odbierałby dane z klawiatury i wyświetlał cośtam na lcd. Gdybanie gdybaniem ale nigdy nie sprawdzisz lepiej co sie stanie dopóki nie zbudujesz pcb.[/quote]
struktura przerwaniach satel klawiatura klawiatura klawiatura minimalizuje
klimatyzacja multivan programy lokalizacji elektroniczne głowice termostatyczne
ariston kocioł gazowy ariston kocioł gazowy
Samsung RV511 – czarny ekran po wymianie klawiatury, działa z monitorem zewnętrznym Audi A1 – jak utrzymać tarcze hamulcowe bez rdzy? Powłoki Brembo UV, ATE Coated, Zimmermann Coat Z