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.
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...
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...
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?;]
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?...
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...
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...
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...
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]
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...
Ja bym się wpiął na INT0 lub INT1 bo sporo programów do klawiatury wykorzystuje przerwania.
Cześć wydaje mi się że nie potrzebie komplikujesz sobie życie przerwaniami (przynajmniej do klawiatury) ustal jakieś główne założenie np.: podstawa to odczyt klawiatury a do przerwania daj LED8SEG niżej dodaje kod obsługi klawiatury 4x4 która zwraca 0xFF gdy żaden klawisz nie został wciśnięty korzystałem z tej procedury właśnie między innymi do kalkulatora...
Na Mega328 z KB RAM uruchamianie OS nie bardzo ma sens. Zrób wielowątkowość opierając cały program o maszynę stanów. Zapomnij, że istniej delay. Owszem, krótkich delay (mikrosekundy) w AVR przeważnie nie da się przeskoczyć ale nie zawsze. Na 1-Wire, można obsłużyć USARTem. Nie ma żadnych delay i 1-Wire działa na przerwaniach. Masz więc już pierwszy...
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...
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?
Standardowo nie masz zegara o potrzebnej rozdzielczości. Ja bym zrobił tak: napisał własną obsługę przerwania timera systemowego (nie RTC) aby uzyskać licznik do pomiaru z zadana dokładnością, podłożył ją pod tę standardową, podkręcił częstotliwość przerwań (standardowo jest to ok 18 Hz) do takiej jak potrzeba. Wtedy w przerwaniach od transmisji używał...
Przerwanie 1Ch jest wywoływane z wnętrza IRQ 0. Ma więc wyższy priorytet niż przerwanie klawiatury - IRQ 1 - i stąd "zawieszenie". Komputer nie reaguje na klawiaturę, dopóki nie zakończy się IRQ 0, a ono nie zakończy się, bo debugger czeka na klawiaturę.... EDIT: Dla jasności - nie chodzi tu o fakt, że IRQ0 ma wyższy priorytet niż IRQ1. Wystarczy ,...
Witam ! Wydaje mi się, że chodzi tu o rozróżnienie przerwań zewnętrznych od wenętrznych inny skok przy przerwaniu wew. a inny przy zew. W programie obsługi trzeba poprostu sprawdzać skąd przychodzi przerwanie i odpowiednio skskać. Obsługa klawiatury z przerwania nie jest dobrym pomysłem. pozdrowienia T Dodano po 3 Witam ! Wydaje mi się, że chodzi tu...
Teraz rozumiem czemu w czasie grania muzyczki na AY w przerwaniu INT 20 ms wskakiwały mi głupoty z klawiatury co powodowało że plajer żył swoim życiem....
Ten program nie ma prawa działać. Zle zbudowany Select...Case. Nigdy nie będzie przeskoku dla I=2 oraz I=3. Reszty nawet nie analizuję.
Wystarczy że czytasz stan klawiatury w przerwaniu zegarowym co 0,1s i masz spokój.
Bardzo dziękuję za odpowiedzi. Skonfigurowałem piny PA2 i PA3 jako UART2, aktywowałem przerwania. Jak debuguję, to obsługa przerwania następuje z klawiatury komputera, lecz z klawiatury MIDI podłączonej do mikrokontrolera nie ma już żadnej reakcji. Mam podłączony MIDI shield do pinu Rx. Jak mogę przesłać tę wiadomość MIDI do mikrokontrolera? Czy idę...
Przeniosłem z: Schematu/instrukcji...
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ć...
A gdybyś zrobił to na innej zasadzie ? Jeden z liczników skonfigurowany , jako przykładowy 1 MHz . Teraz powyliczałbyś , o ile razy taka częstotliwość pracy jest większa od tych którą chcesz osiągnąć , i zapisał wstępne wartości np. w tablicy . Przykładem niech będzie silnik pierwszy - 1kHz , drugi 20 kHz .... Dla pierwszego 1000 razy za dużo , dla...
Po prostu uzywamy zmiennej typu volatile, gdy chcemy miec zawsze biezaca wartosc zmiennej, i cos innego moze nam ja zmienic w polowie wykonywania fkcji. Jesli masz na przyklad fkcje czytajaca z klawiatury na timerze (a wiec na przerwaniu), oraz glowny program, wykonujacy jakies zadania w zaleznosci od tego, co zostalo wcisniete - nalezy uzyc zmiennej...
Potrzebuję zaprojektować klawiaturę 10x10, która będzie współpracować z z mikroprocesorem. Kombinuję już od dłuższego czasu, ale im dalej w las tym więcej drzew. Zacząłem od prostej z przemiataniem ale przy tej ilości klawiszy trochę chyba za długo by to trwało. Dobra by była z przerwaniem, więc zacząłem kombinacje z expanderami portów na I2C (ewentualnie...
V-USB wymaga aby żadne przerwanie nie zajmowało więcej niż 25 cykli (12MHz wersja), co jest poza zasięgiem "Arduinowych" przerwań.
Pisząc klawiatura PC masz na myśli typową klawiaturę PC AT, PS/2? Jeśli tak, to protokół nie pasuje do SPI. Najprostsze rozwiązania czytają/piszą pojedyncze bity w przerwaniu każdego cyklu zegara: [url=http://www.atmel.com/Images/doc1235... Interfacing the PC AT Keyboard.
W takim razie: 1. Weź dowolnego procka ze sprzętowym USB. Dla Ciebie chyba każda Xmega poza serią E będzie ok. Nie piszę o ARM czy PIC, ponieważ napisałeś na wstępie AVR. 2. Odpal sobie demo HID z ASF w AS6. 3. Skonfiguruj dowolny licznik do generowania cyklicznych przerwań, np. co 10ms, (albo skorzystaj z przerwania USB_SOF co 1ms), a w przerwaniu...
Ja to robię w ten sposób ze tworze bufor klawiatury. W przerwaniu bufor jest ladowany a gdy czytam w celu jakiejs reakcji czy tez wyswietlania bufor jest oprózniany. Wtedy na klawiaturze mogę pisac jak szybko tylko chcę. Pozdrawiam
Widziałem swego czasu gotowe klawiatury 16-stkowe na i2c dodatkowo z przerwaniem o naciśnięciu klawisza.
Poczytaj kartę katalogową DS18B20 ! W kominku potrzebujesz odczytu temperatury z dokładnością około 0.1°C , a nie wystarczyłoby do 1° C. Poza tym użyj obsługi klawiatury w przerwaniu.
Listing po wejsciu do procedury przerwania spróbuj od razu wyłaczyć przerwania i zrobić getkeybaord czy jak to tam ma:) Może zadziała;)
Rozwiązanie na ADC nie wyklucza użycia przerwania.
Nie, podajesz na jedno wyjście wiersza stan niski i sprawdzasz stan wejść kolumn podciągniętych wwnętrznei do plusa. Robisz to zwsze w przerwaniu timera. To samo przerwanie może służyć np. do wyświetlanai LED, o ile masz w systemie wyświetlacz multipleksowany.
Mam pytanko: jak prawidłowo podłączyć klawiaturę ze stykami węglowymi (jak w kalkulatorach) pod mikrokontroler? Czy ustawić 1 na wejściu i zwierać nim do masy, czy dać zero i łączyć z zasilaniem? Stosować jakiś opornik? Proszę o jakąś poradę bo do tej pory stosowałem tylko przyciski w postaci mikrostyków. Może jakiś schemacik z wyzwalaniem przerwania...
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ć...
Jeżeli ,przerwania docierają na procesor , TV działa prawidłowo z klawiatury i napewno jest sprawny pilot to podejrzenie pada na procesor. Sugeruje się tym ze wymieniałeś trafo./czy stare nie strzelało?/ Czy przebieg z odbiornika podczerwieni jest na odpowiednim poziomie? Zanim podstawisz procesor : Sprawdź czy nie ma "śmieci " na napieciach zsilających...
Nie rozumiem jednej rzeczy w twojej odpowiedzi korrus666. Jak może przyjść przerwanie a żadne klawisz nie być wciśnięty. Przecież to klawiatura generuje przerwania ?? wiec za każdym razem coś będzie wciśnięte !! Tak poza tym to bardzo chętnie zapoznam sie z twoim rozwiązaniem wielokrotnego wciśnięcia klawiszy.
Przenieś albo obsługe klawiatury albo silnika to przerwania.
napisałem program do obslugi klawiatury i cos mi nie chce działac nie wiem dlaczego wyglada to mniej wiecej tak: dim zmienna as byte config portd.0 = input set portd.0 'wlaczenie podciagania config timer0 = timer, prescale = 1024 on timer0 klawiatura enable interrupts enable timer0 do (program glowny) loop klawiatura: if portd.0 = 1 then incr zmienna...
Witam, żadnego przerwania nie widać... posiadasz lutownice chociaż?
Tak, przycisk mam tak podłączony, aby nie zrobić zwarcia podłączając przycisk pod przerwanie INT0 . Dlatego podpinam przerwanie INT0 do złacza JP13, a przycisk z portu B do klawiatury. Procedura przerwania wykonuje się w programie, jednak nie wykonuje się timer. Być może nie można tego sprawdzić w symulatorze, a niestety nie mam w tej chwili możliwości...
Dlatego wszelkie teorie w zakresie budowy jakiegoś urządzenia są niewiele warte bez schematu i ich potwierzenia w praktyce... ;) A obsługiwanie klawiatury w przerwaniu zewnętrznym, pomimo straconych wielu godzin, w moim przypadku nie dało zadowalającego efektu - wciskam klawisz raz, a tu idą setki przerwań od opadającego zbocza... Od tego czasu moim...
Moim zdaniem masz rację, że przerwania powodują problem. Miałem kiedyś podobną zagwozdkę z obsługą klawiatury PS2 + multipleks. Problem rozwiązało zezwolenie na przerwanie przerwania multipleksowania, tak aby przerwanie (w moim wypadku) od obsługi klawiatury miało "wyższy priorytet" i mogło wywłaszczyć przerwanie multipleksowania.
Witam. Mam układ gdzie na porcie D mam podłączenie klawiatury(7 knefli) oraz lcd(zapis 8 bitowy). Programując klawiaturę w przerwaniu okazało się ze LCD wymusza mi na porcie D rożne stany. Chciałem się zapytać czy jest możliwość obejścia tego?czy tylko sprzętowo? czy np wysłanie komendy lcd off do wyświetlacza zwolni mi te piny i klawiatura będzie mogła...
Witam !!! Zainstalowałem specjalnie BASCOM'a i stwierdzam, że trzeba to napisać od nowa. Najlepiej będzie Clk klawiatury wpakować na przerwanie zewnętrzne typu "any change". Kiedy clock wyzwoli przerwanie, sprawdzasz w petli dane i po sprawie. (M.) Witam, masz racje, że trzeba to włożyć do przerwania, ale nie trzeba pisać tego od nowa. Dzisiaj poprawiłem...
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.
1. Start -> Programy -> Akcesoria -> Narzędzia Systemowe -> Informacje o systemie -> Przerwania Sprawdź, czy nie ma konfliktów przerwań. Jeżeli inne urządzenie ma identyczny numer przerwań jak klawiatura, napisz. 2. Start -> prawy klawisz na Mój Komputer -> Właściwości -> Menedżer Urządzeń Czy widzisz wykrzyknik lub pytajnik przy klawiaturze? Czy w...
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.
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.
Wektory przerwań mają odpowiednie priorytety ... jeżeli odczyt czasu masz w przerwaniu to przerwanie klawiatury powinno być o mniejszym priorytecie. Jeżeli obsługę odczytu masz w pętli głównej - to zrób własny "kontroler przerwania" :P Po odczytaniu godziny itd. sprawdź czy flaga przerwania jest ustawiona, a jeżeli tak to skocz do procedury obsługi...
Temat "systemy wbudowane" jest dość szeroki. W czym konkretnie chciałbyś się specjalizować? Szczerze to nie wiem jakie są kierunku rozwoju. Chciałbym brać udział, jak wspomniałem wcześniej, przy budowie takich systemów, a co dokładnie, to nie zastanawiałem się. Jakie są możliwości wyboru ? Jeśli chcesz pracować w tym fachu, musisz się douczyć, kupić...
Trzeba było pamietać ze mysz komputerowa była na COM 1 i czasem dzwiekowka, modem czy karta sieciowa nie chciała sie uruchomić przez konflikt sprzetowy przerwań. A klawiatura prawidłowo działała tylko na wtyku DIN przejściowka na PS nie zawsze chciała współpracować z płytą.
To zależy od programu. Zwykle w 90% aplikacji nie ma konieczności używania przerwań, gdyż obsługa klawiatury nie jest zwykle czynnością krytyczną czasowo (człowiek nie zauważy 10ms opóźnienia).
Komórka jest zawsze włączona (nawet gdy ją "wyłączysz"). Procesor jest w uśpieniu, ale przerwaniem obsługuje klawiaturę i dlatego możesz ją włączyć :)
Ja bym ten problem widział w ten sposób. Podzielić cały program na dwie niezależne części. Pierwsza to program obsługi klawiatury, który by cały czas skanoweł Twoje klawisze oraz druga na przerwaniach, która realizowała by całkowicie niezależnie mruganie diodek. Bo wiadomo że to mruganie będzie z jakimś maksymalnem tempem wykonywane i to byłby podstawowy...
Oba timery z kontrolerka, wykorzystuję w trybie PWM, co koliduje z wykorzystaniem ich do generacji przerwania dla klawiatury. Otóż niekoniecznie. Timer skonfigurowany do PWMa może także generować przerwanie od przepełnienia.
satel klawiatura klawiatura klawiatura minimalizuje klawiatura a4tech
kamera cofania monitoring małe obroty wentylatora usuwa puste folder
radio merces alpine radio merces alpine
Wolf CGG-2, CGB-2, CGW-2 błąd 015 – awaria czujnika temperatury spalin lub zewnętrznej Presostat nie załącza się i iskrzy - przyczyny