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.
http://obrazki.elektroda.pl/9745806300_1... Witam. Sesja się zbliża, więc tradycyjnie zacząłem już prokrastynować :D . Ostatnio zacząłem pisać bibliotekę do obsługi klawiatury PS/2 w C dla AVR i postanowiłem na szybko w godzinkę lub dwie stworzyć jakiś praktyczny projekt w celu jej przetestowania. Początkowo nie planowałem tego publikować,...
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...
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...
https://obrazki.elektroda.pl/2872521200_... Witajcie moi drodzy. Najpierw pokażę tutaj wnętrze dość starego, budżetowego odtwarzacza DVD, a potem zaprezentuję jak można praktycznie wykorzystać odzyskane całkowicie za darmo komponenty ze środka. W temacie wystąpi też Arduino. Spróbuję uruchomić panel przycisków (dość dziwnie zorganizowany),...
Druga możliwość, to wykorzystanie przerwania od timera. Ustawiasz sobie przerwanie co np. 10ms i w przerwaniu badasz stan klawiatury i zapamiętujesz. Jeżeli ten nowy stan jest inny, niż zapamiętany poprzednio, to np. wpisujesz sobie wartość opóźnienia (do eliminacji drgań styków) do zmiennej. Jeżeli stan się nie zmienił, to zmniejszasz zmienną i jeżeli...
https://obrazki.elektroda.pl/6692889600_... Od jakiegoś czasu czułem potrzebę sterowania komputerem za pomocą niestandardowej klawiatury. W wielu przypadkach, takich, jak emulatory starych komputerów i sterowanie urządzeniami za pomocą klawiatury, można przypisać funkcję programu do klawisza na klawiaturze. Na przykład komputer ZX...
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...
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. Mam drobny problem i nie wiem jak go ugryźć. Atmega32 kwarc 16mhz W przerwaniu odczytuję klawiaturę ps2 i w między czasie robię wyświetlanie na matrycy w Timerze z preskalerem 64. I jeszcze mam uruchomione PWM. Jesli wyświetlanie zrobie w pętli głównej i wyłaczę timer to klawiatura czyta się prawidłowo ale jeśli uruchomię timer to wówczas czyta...
Siemanko. Mam problem otóż dzisiaj zauważyłem, że klawiatura przerywa pisanie gdy jest wpięta we frontowy panel komputera. Wygląda to tak, że piszę coś i nagle jest przerwa i gubię znaki lub litery po chwili można pisać dalej. Czasami po takim przerwaniu lubi zwielokrotnić liczbę liter lub znaków. Na tylnym panelu klaiwatura działa bez problemu. Dodatkowo...
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...
ok,dzięki za wszelkie posty.Już sobie poradziłem.zrobilem na przerwaniu od timer'a.Dzieki!Pozdrawiam!
Witam wszystkich. Zaprojektowałem i uruchomiłem zegarek z wyświetlaczami LED(SA10-21GWA) i układem PCF8583 współpracującym z mikroprocesorem Atmega8 oraz układami PCF8574AP na szynie TWI(i2c). http://obrazki.elektroda.net/21_12497604... http://obrazki.elektroda.net/58_12497606... http://obrazki.elektroda.net/95_12497605...
Zrezygnowałem z "obsługi klawiatury" w przerwaniu i robię to w głównej pętli programu ale do eliminacji drgań styku korzystam jeszcze z HAL_Delay(20), to chyba tutaj jest miejsce na wykorzystanie timera?? Bo nie wiem jak inaczej można byłoby zastosować timer do obsługi odczytu klawiatury? Co do karty SD, skorzystałem z interfejsu SDIO i middleware FatFs,...
Magiczne hasło brzmi PULL-UP. Sprawdź w datasheet i tysiącach publikacji w sieci.
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...
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...
1) dowolny, w przerwaniu bedziesz sprawdzac stan tego pinu 2)clk podpinasz pod zewneczne przerwanie i w jego przerwaniu sprawdzasz stan pinu data
OK, to urządzenie MUSI być niezawodne, wiec myślę ze najlepiej będzie jeśli jednak zrobię tą komunikację od nowa na przerwaniach. Rozgryzam powoli implementację Atmela ( http://www.atmel.com/images/doc2564.pdf ). Przykład przeanalizowałem i rozumiem jak działa. Problem pojawia się kiedy chcę odczytać od konkretnego adresu w slave, chyba trzeba by dorobić...
Znajdź w necie opis protokołu PS/2. Generalnie jest tak, że klawiatura wysyła zarówno dane jak i zegar. Zegar podłączasz do wejścia INT procka i na przerwaniu próbkujesz daną. Klawiatura wysyła znak wciśnięty i znak końca (patrz opis protokołu).
Komentarze są do starego projektu ale przerwanie używane do zegara generuje impuls o okresie 1s. Jeżeli klawiatura bedzie obsługiwana na przerwaniu INT0 to jej obsługa będzie działała prawidłowo (czyli wykryte będzie każde naciśnięcie a nie tak jak teraz dopiero po przytrzymaniu na 1s)?
>Logi Nie przesadzaj z tym gubieniem krótkich naciśnięć. Faktycznie, matrycę mikrokontroler musi przemiatać w kółko (najlepiej standardowo w przerwaniu timera). Ale zauwaz, ze zgubienie impulsu ponizej 10ms jest pozytywne (anty-drganie-styków), a po drugie, przy zegarze i2c 400kHz, i np. 200 bitach transmisji wymaganej do zasterowania expandera, masz...
Obsłuż ją w przerwaniu :P Znaczy podłącz linię danych klawiatury do np. INT0, i potem jak naciśniesz klawisz to zostanie wywołane przerwanie INT0. Klawiatura działa na tyle wolno że zdążysz bez problemu odczytać jaki klawisz naciśnięto.
Informację o wciśnięciu generujesz po wykryciu wciśnięcia - inaczej wkurzysz użytkownika. Potem zanim wykryjesz następne wciśnięcie czekasz, aż klawisze zostaną zwolnione. Mi.in. dlatego należy to robić w przerwaniu timera. Jeden timer na ogół wystarczy do wszystkiego.
Coś podobnego mam zrobione. W przerwaniu mierzony jest prąd, napiecie i klawiatura analogowa. w nastepnym przerwaniu mierzony jest czas rzeczywisty i dwa liczniki zegarowe (pomiar mocy i czasów działania/niedzialania) W jeszcze jednym przerwaniu ma programowy PWM 9 bit do sterowania tyrystorem. W kolejnym przerwaniu właczony jest głosnik do sygnalizacji...
Witam. https://obrazki.elektroda.pl/7083285900_... Piny odczytujące klawiaturę ustawiamy jako wejście, włączamy 'podciąg' dodatkowe rezystory w procesorze. W przerwaniu obsługującym wyświetlacz LED dajemy coś takiego [syntax=c] void readKey(void) { uint8_t a = 0; key = 255; >>>>> wysylanie danych do LED DP3A _delay_us(1); // czas na...
F10 i Delete tak End i inne też. Pause/break nie działa a na loading screenie biosu jest tylko logo asusa. Pare kompów złożyłem, w oc się bawiłem i laikiem nie jestem, ale tu mi po prostu ręce opadają. Zaczynam się zastanawiać czy może klawiatura nie przestała działać?
Witam - pamiętam Twój problem z innego wątku. Sytuacja nietypowa skoro po podmianie tylu komponentów problem nie ustał. Procesor? Hmm... wydaje się, że również w innych sytuacjach też byś zauważył jego wadliwe działanie. Proponuję przyjrzeć się jeszcze 2 elementom - monitorowi i klawiaturze/myszy. Jeśli dobrze pamiętam, to masz monitor CRT (zresztą...
Tak, ale klawiatura jest częściej skanowana i trzeba odczekać jakiś czas aby DS przekonwertował temp. a to przerwanie które używam jest od PCF8583
Okazuje się, że przyczyną są opady śniegu - płatki śniegu blokują wiązki podczerwieni uruchamiając dzwonienie. (at)Ircys Mamy specjalne oprogramowanie przygotowane na tę okazję, które ma zmodyfikowaną stałą czasową aktywacji po przerwaniu wiązki i ponoć mocno ogranicza to występowanie problemu (rzecz jasna, w 100% go nie eliminuje, ale pewna redukcja...
Kod skopany dokumentnie. 1 - silnikami należy sterować w przerwaniu od timera, tylko taki sposób zapewni dokładne, równe sterowanie silnikiem 2 - klawiatura powinna reagować na zmianę stanu a nie na konkretny poziom, dzięki temu klawisze nie sa od siebie zależne i nieblokuja pętli głównej programu Ten program może być wzorem, jak nie pisać programów....
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
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...
Witam, Piszę ponieważ nie bardzo wiem jak zabrać się do tematu. Kilka dni temu włączyła mi się aktualizacja win10 podczas wyłączania komputera. Niestety na swoje nieszczęście śpieszyłem się i wyłączyłem komputer podczas owej aktualizacji. Dzisiaj włączam komputer pojawia się ekran logowania niestety nie mogę nic zrobić ponieważ ani myszka ani klawiatura...
W ramach oszczędności linii mikrokontrolera ATMega8 podłączyłem LCD do koncówek PortuD : E = Portc.6 , Rs = Portd.4 Db4 = Portd.3 , Db5 = Portd.2 Db6 = Portd.1 , Db7 = Portd.0 Końcówek tego samego portu używa klawiatura 4 x 4 z wykorzystaniem funkcji Getkbd (). Czy oprócz tego mogę wykorzystać końcówkę PD2 lub PD3 by odbierać sygnał w podczerwieni,...
Może rejestr SIPO jakiś może (ls164 czy jakie tam są popularne) i multiplex na 4 segmenty? Do tego klawiatura 4x4 albo 3x3 chodzącą w tym samym przerwaniu co wyświetlacz i używającą tych samych pinów to sterowania multuiplexem co zmniejszy ilość pinów o 4 tylko trzeba diody dodać ? Pinów starczy ale pamięci w baskomie to raczej wątpię choć kto wie ja...
Witam, na zajęciach otrzymaliśmy projekt "kalkulator z wykorzystaniem klawiatury 4x4" ma to być najnormalniejszy w świecie kalkulator a klawiatura ma odpowiadać za klawiaturę numeryczna + wybór działania(czyli np 2+2 =) powiem szczerze że już nie mam pojęcia, doszedłem do punktu wrzenia. Proszę o pomoc, jak na razie mam tyle :/ #include <avr\io.h>...
Jakiś fizyczny sposób załączenia przerwania timera przerwaniem od INT0 . Szukam i nie mogę znaleźć żadnych przykładów ani bardziej szczegółowego opisu jak to ugryźć , we wcześniejszych odpowiedziach nikt nie napisał dlaczego nie można używać delay w przerwaniu a w prostej wersji programu nie wpływało to na działanie. Teraz mam bardziej rozwinięta wersje...
Cóż.. mało wiem o całym urządzeniu, ale proponuję następujące rozwiązanie (rozumiem, że klawiatura przesyła przez RS kod znaku ASCII). ljmp 100h ;skok do poczatku programu org 23h ;wektor odpowiadajacy przerwaniu UART ajmp odbior ;skok do obslugi przerwania org 100h ;poczatek glownego programu mov SCON,#050h ;zaladowanie ustawien do odpowiednich mov...
DEX - no cóż dlatego, bo taki układ już jest i nic nie da się teraz zrobić. Kolumny i wiersze są podpięte bezpośredni pod wymienione porty.. Więc bezpośrednie wykorzystanie zewnętrznego przerwania nie wchodzi w rachubę. mariuszlorenc - no wlasnie może o to mi chodzi, ale jak to się robi, bo to moje naprawdę pierwsze doświadczenie z Timerami, flagami...
Theur : jak już coś wyjaśniasz to pisz jak jest a nie jak ci się wydaje. Klawiatura niczego nie buforuje tylko wysyła informacje o wciśnięciu lub puszczeniu klawisza. Kontroler klawiatury (na płycie głównej) po przyjęciu pełnej informacji (szeregowo) generuje przerwanie INT9. Procedury BIOS'a umieszczeją zdekodowaną informację w obszarze zmiennych 40:1cH...
Dzięki za chęć pomocy. Procka mam attiny 2313, podłączenia są następujące: wyprowadzenie nr.12-tranzystor setek,13-tranzystor dziesiątek,14-tranzystor jedności.74ls164 podłączony jest: clr-do +5V,clk-11 wyprowadzenie procka,AB(zwarte)-9 wyprowadzenie procka. Nie chcę absorbować czasu na całość, popróbuję resztę programu sklekocić sam (ma być tam jeszcze...
Chciałbym zrobić symulację naciśnięć klawiszy na klawiaturze PS/2 wykorzystując ATMega328 z rezonatorem kwarcowym 16MHz i interfejs PS/2 na USB. Posiłkowałem się tym opisem PS/2. https://www.avrfreaks.net/sites/default/... Z opisu wynika, że urządzenie PS/2 (wspomniana klawiatura) musi być w każdej chwili przygotowane do odbioru...
Strasznie przekombinowałeś. Do obsługi klawiszy nie powinno używać się przerwań. To nie jest operacja wymagająca natychmiastowej reakcji. Jesteś pewien, że zmienna State nie jest zerowana przy każdym wejściu do funkcji? W wyznaczaniu State operacja 'OR 0xE000' jest zbędna, oczywiście wówczas późniejszy warunek byłby: "State == 0x1000". Moim zdaniem...
Więc tak, Dziękuje wszystkim za opinie. Pierwsze pytanie to czy jeżeli zerwie się klawiaturę lub otworzy to czy jest możliwość złamania kodu. Nie ma, ponieważ w samej klawiaturze są tylko przewody, głośniczek i diody LED. To centralka steruje wszystkim, a ona znajduje się w środku. Dodatkowo klawiatura posiada zabezpieczenie sabotażowe więc przy otwarciu...
U mnie diody raz działały raz nie :(. Zrobiłem sobie tak :) Po obsłudze przerwania wystawiam 0 na wiersze i sobie czekam aż przyjdzie kolejne przerwanie :)
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 dobrze wykrywa który przycisk jest wciśnięty, sygnalizuje...
Przerabiałem przez 5 lat różne systemy sterowniki wszystkie sloty PCI zawsze USB było na jednym przerwaniu z TV, choć było kilka wolnych win98 czasem świrował program pixelview wykonał niedozwoloną itp., linux nie sprawiał problemu, winXP jak nie kopiuje plików a najlepiej nic nie robię podczas oglądania telewizji na PC to działa Myślę, że jednak ten...
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] dni void RTC_INIT() { RCAP2H =(0-10000)>>8; // licznik zlicza impulsy RCAP2L = (0-10000); // opoznienie 10ms - sprawdzone...
A ja mam oto takie przerwanie: ;=======================================... ; Timer 0 interrupt ;=======================================... .org0x000B t0intv: MOV timer_xxx,TL0 ;2 execution time measurement (start) PUSHACC ;2 PUSHPSW ;2 DJNZclock_clk, noclock ;2 MOV clock_clk,#iclock_clk;2 ; hundreds of seconds INC clk_x MOV...
Dobry wieczór! Mam mały problem podczas multipleksowania czterech wyświetlaczy 7-segmentowych. Mają one wspólną anodę. Steruję je przez tranzystory PNP przez którymi daję jeszcze oporniki 1k. Nie będę dalej tego opisywał - schemat w załączniku. Sterowanie odbywa się przez WYSW3. Przez WYSW i WYSW2 podłączone są poszczególne segmenty wyświetlaczy na...
Odświeżam temat i przedstawiam co zrobiłem . Wykrywanie stanu i wystawianie stanu logicznego nie chciało działać kiedy było zrealizowane na opóźnieniach. Do głowy wpadł mi pomysł kolegi pikczu by zrobić coś w przerwaniu TIMERA. Tak wiec odczytywanie stanu jest w podprogramie przerwania a w pętli sterowanie ledem. Do zmiennej sw zapisujemy poklei czy...
Ajamamototakie ;) Wrzucam cały główny program + include, bo nie chce mi się go ciąć, ot leń ze mnie i tyle ;) Przy okazji w ramach gratisu"wieczny" kalendarz na lata 2000-2255 obliczający dzień tygodnia (procedura calc_weekday ) w zdaję się mniej niż 100 cykli, a nie jakieś badziewie z AVT, które potrzebuje na to kilku sekund(!). No i jeszcze pare pierdółek...
Nie potrafię zrobić tego multipleksu , próbowałem kilka rozwiązań i w końcu sięgnąłem po kod michaloko12 do którego odnosząc się dopisałem funkcje wyświetlania w przerwaniu ale niestety nie działa. Jak mam rozwiązać ten multipleks bo z pomocą książki tego nie zrobię [taka zachwalana a przykładów realizacji na lekarstwo]. Tak wygląda teraz [surówka]....
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 ?...
[syntax=c] #include <stdint.h> #include <avr/io.h> #include <stdlib.h> #include <util/delay.h> #include "include/lcd44780.h" #include "include/i2c_twi.h" //********** funkcje konwersji char dec_na_bcd(char num){return ((num/10 * 16) + (num % 10));}//set = dec_na_bcd(set); char bcd_na_dec(char num){return ((num/16 * 10) + (num...
Bascom - wersja 1.11.95 Kod, no jest tego sporo: - zegar PCF8563 - Zapis na SD - dwa czujniki DHT11 - odczyt z PCF8574AP ( klawiatura ) - RC5 - ma być DS18B20 - ma być DCF77, ale nie doszedłem do tego momentu ( tzn testowałem na innym procesorze i działało ) Działa - zegar PCF8563 - dwa czujniki DHT11 - odczyt z PCF8574AP w przerwaniu ( klawiatura )...
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 ?
Hehe... no to następny pomysł - a jak szybko obraca się pętla główna programu? Nie wiem jak masz skonstruowany program, czy w ogóle jest? Dużej precyzji czasów chyba nie potrzeba, nie ma różnicy, moim zdaniem, czy przytrzyma się przycisk 1s czy 1,1s, więc może ten pomysł wsadzić do pętli głównej i bez przerwań. Wtedy w zależności od szybkości pętli...
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
A nie lepiej odpytywać na przerwaniu timera i klawiaturę i PCF8535? Do programu wstawić semafor ustawiany przerwaniem INT0 i kasowany przy odczycie wskazania zegara. To samo dotyczy innych peryferiów przyłączanych na I2C - dostęp do szyny niech ma tylko jeden wątek. Myślę, że ułatwiłoby to sprawę i to znacznie.
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.
Odnośnie klawiatury ją się akurat robi na przerwaniach prawie zawsze - przerwanie od timera;) Wyświetlacz tak samo jeśli nie chcesz migania;) W głównej możesz sobie dane parseować ale wysyłać trzeba w stałych odstępach czasu;)
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...
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?...
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...
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ś
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): Nawet można klawiature strobować sygnałem E od...
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.
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 ,...
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...
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...
Kombinujecie jak koń pod górę. W helpie Bascoma jest przykład jak obsłużyć klawiaturę bez przerwań i działa bez zarzutu, sprawdzałem.
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...
opóźnienie przerwaniu rs232 przerwaniu enkoder przerwaniu
vectra kartę microsoft windows ultimate włącznik amplituner
płyta indukcyjna wyłącza smart grundig
Głośny stukot przy załączaniu piecyka - przyczyny Wymiana wirnika w frezarce Dexter IC1200RT - krok po kroku