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...
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 ?...
Skoro posiadasz także resztę - odizolować, polutować, zabezpieczyć termokurczami i tyle, ew.wyciągnąć wsuwki, polutować kable do nich, osadzić je z powrotem we wtyku.
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...
Musisz wyzerować flagę, a czy zrobisz to normalnie czy przy użyciu tej bzdurnej biblioteki to już nie ma znaczenia. 4\/3!!
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...
Magiczne hasło brzmi PULL-UP. Sprawdź w datasheet i tysiącach publikacji w sieci.
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 :)
Skoro nie dziala i system jej nie wykrywa to pewnie jest uszkodzona. Jakiej pomocy oczekujesz? Jak potrafisz to sprawdz miernikiem kabel usb czy zyly sygnalowe nie sa przerwane.
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
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?...
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.
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.
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ż...
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...
Oops pomyliłem system binarnym z dziesiętni wagami bitów :D zaraz poprawie edit:najprościej uint8_t k;//deklaruje wcześniej ponieważ będe używał poza pętlą for(k=0; k<4; k++){ if( (PIND>>(4+k))&... ){k++;break;}//k++ ponieważ otrzymam 0-3 a potrzebuke 1-4 uint8_t j = ( i*4 ) + k; jeszcze...
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...
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 ,...
Zacznij od przerwania timera.
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.
Na mój nos to jest uszkodzenie wewnątrz klawiatury - przerwane ścieżki. Każdy następny montaż przerywał następne.
V-USB wymaga aby żadne przerwanie nie zajmowało więcej niż 25 cykli (12MHz wersja), co jest poza zasięgiem "Arduinowych" przerwań.
Biblioteka Adafruit_NeoPixel blokuje przerwania więc Możesz mieć problem z obsługą klawiatury podczas jej działania.
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.
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...
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...
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...
Wykorzystaj np. Linie INT0. A przerwanie wyzwalaj opadającym zboczem czyli falling. Jeżeli przerwanie wystąpi to realizuj obsługę klawiatury. Pozatym skorzystaj z funkcji GETATKBD() bo getkbd() jest stworzona dla matrycy 4x4 lub 4x6. Pozdrawiam Dawid.
Drogi Kolego Aby możliwe było nawiązanie komunikacji pomiędzy oprogramowaniem InField a klawiaturą, należy przerwać komunikację pomiędzy klawiaturą a centralą, np. poprzez odłączenie żółtego przewodu magistrali. Po tym zabiegu program zobaczy klawiaturę i będziesz mógł przeprowadzić aktualizację firmware Pozdro :-)
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...
Taka rada stan klawiszy najlepiej odczytywać w przerwaniu timera.
sprawdź taśmę klawiatury czy są wszystkie elementy albo czu tasiemka nie jest przerwana
Rozwiązanie na ADC nie wyklucza użycia 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...
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.
ale w funkcji obsługi przerwania ustawiaj jedynie flagę, a w main() umieść resztę kodu Czyli rozumiem że najlepszą praktyką jest ustawianie w flagi w procedurze przerwania a resztę wykonywać w main? I tak robić dla każdego rodzaju przerwania?
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...
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...
Ja robię to w dwóch etapach. W przerwaniu jest skanowana klawiatura i zwraca stan klawiatury do programu głównego. Natomiast w programie głównym sprawdzam stan tej zmiennej i zkolei zwracam wartość klawisza tylko wtedy jak się zmienił z "zera" na "coś" inne sytuacje są ignorowane.
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;)
_jta: bez komentarza. Znasz moje zdanie. Nie ma takiej komendy jak napisałeś "żądanie puszczenia klawisza". Ponadto gdyby takowa istniała i była użyta w procedurze obsługi przerwania klawiatury BIOS (np. przerwanie 16h) wówczas DOS nie mógłby realizować buforowania. Jedna z funkcji obsługi klawiatury ale w DOS a nie BIOS umożliwia odczyt (również możliwy...
Twierdzisz kolego, że łatwiej napisać soft jednocześnie obsługujący enkoder, LCD oraz generowanie sygnału niż 2 osobne ? Powyższe stwierdzenie jest chyba prawdą jedynie w przypadku małych umiejętności programisty Proszę https://www.elektroda.pl/rtvforum/topic3... Pomiar częstotliwości (sprzęt+przerwania), czasu (sprzęt), oscyloskop (DMA), obsługa...
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?;]
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.
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...
Prawdopodobnie przerwana taśma od płytki klawiatury, sprawdź również czy nie pękł jakiś glass. Ewentualnie rozklej delikatnie ta białą warstwę z płytki klawiatury i sprawdź czy membrany się nie powypalały już.
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...
To mi sprawia wrażenie jakby były jakieś zakłócenia. Ogólnie stosuję właśnie ten program bez użycia przerwań. Klawiatura jest podłączona wg schematu z helpa i równocześnie ze strony m.wiazania. Natomiast zastanawiam się jak to jest, że gdy załączam układ, na klawiaturze migną lampki i się dalej nie palą, odłączając linie napięcia klawiatury i wciskając...
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ę...
(at)raczkowy18 Odłącz wszystkie pozostałe dyski, zostaw tylko dysk systemowy. Uruchom instalację Windowsa na nowo. Podczas instalacji wybierz instalację zaawansowaną. Ręcznie usuń z dysku wszelkie partycje. Zainstaluj Windowsa na nowo. Będziesz potrzebował pamięci USB, żeby stworzyć bootowalnego Windowsa.
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?
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ć :)
Ale to się stało przy cięciu tp. Jest jakaś możliwość aby to zrobić, nie zamykając tp przyokazji? mogę przesłać zdjęcie jak jest przecięty tp.
Ekran działa? Z ciekawości napisz do NDN :) może przypadkiem mają jakiegoś trupka z serwisu. Klawiatura jest rzeczywiście silikonowa - przerwała.
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ą.
Przy 8 bitach można zastosować demultiplekser i multiplekser . 4 bity demultiplekser daje 16 rzędów 3 bity multiplekser daje 8 linii , jeden bit na sprawdzenie . Maksymalnie klawiatura będzie mogła mieć 16x8.
Witam Przerwanie nie nadaje się. W czasie obsługi przerwania, drgania klawiszy mogą zafałszować wynik.
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...
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.
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...
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...
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...
Witam. Ostatnio córka zalała mi klawiaturę czego skutkiem było dostanie się różnego śmiecia pod ścieżki i obecnie wciskając cokolwiek automatem wypisuje mi 2~3 inne znaki. Na allegro trafiłem jednak na tanią klawiaturkę z innego modelu no i wczoraj przyszła... Jak sie okazało nie chodzą klawisze p,1,2,3,4,backspace,7,8,9,num1,num3. Po małym dochodzeniu...
No choćby długość ? Niedawno robiłem klawiaturę matrycową i tak się składa że będąc ograniczony ilością portów musiałem na jednym porcie wsadzić klawiaturę, zespół diod LED, i jeszcze w dodatku wyświetlacz LED-siedmiosegmentowy x 4 cyfry. Użyłem między innymi 74HC123 do generowania przerwania klawiatury i zależało mi na jego pracy w trybie podtrzymywania....
Ja bym się wpiął na INT0 lub INT1 bo sporo programów do klawiatury wykorzystuje przerwania.
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]
Widziałem swego czasu gotowe klawiatury 16-stkowe na i2c dodatkowo z przerwaniem o naciśnięciu klawisza.
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...
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....
Witam, żadnego przerwania nie widać... posiadasz lutownice chociaż?
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...
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...
Zgadzam się z hunterhouse . Takie rozwiązanie zwiększy ilość układów na płytce. Moja propozycja to zastosowanie jakiegoś procesorka z wbudowanym w układ przerwań interfejsem klawiatury. Obsługujesz sobie wtedy klawiaturę na przrwaniach. Przykład: AT89C51RD2
Rzeczywiście, Atmega32 nie ma PCINT. Niemniej jak wspomniałem takie skanowanie lepiej jest zrealizować w oparciu o cykliczny odczyt. Wyklikałem poniższy kod ale nie gwarantuję, że jest on na 100% poprawny bo: - dawno nie pisałem w asemblerze - nie mam jak sprawdzić jego poprawności Idea jest taka, że w przerwaniu od przepełnienia T0 sprawdzamy klawiaturę...
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ć...
Przeniosłem z: Schematu/instrukcji...
Są one istotne i połączone z środkowym polem z prawej strony( jak patrzysz na płyte z góry i klaiatura jest u dołu). W twojej sytuacji na bank masz tam przerwaną ścieżke idącą do układu klawiatury - to wszystko jest widoczne na schemacie....
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).
Rozkręć ją i sprawdź miernikiem przewód USB, możliwe że się przerwał.
wyświetlacz nie pracuje tylko i wyłącznie w trynie odczytu to zwykła głupota, wyjściem może byś zapamiętanie stanu portu w przerwaniu i odtworzenie go po wyjściu z przerwania, w tym przypadku zalecałbym wykorzystanie wyświetlacza bez wykorzystania flagi zajętości. 2 wyjściem może być wyłączanie przerwania od klawiatury podczas realizacji funkcji obsługi...
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ć...
kod pojedynczego klawisza ma 11 bitów z tego 8 bitów danych, chciałem zapytać czy clock działa cały czas czy wypuszcza 11 impulsów przy naciśnięciu klawisz?? jeżeli działa cały czas (tak pewnie jest) to czy w tym schemacie w linku ta informacja zostanie wyświetlana, czy "przeleci" przez diody rejestry i diody, jeśli tak to jak ją zatrzymać aż do naciśnięcia...
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.
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...
Problem jest na płycie przerwana któraś ścieżka między gniazdem klawiatury a kontrolerem. Obecnie taki komputer można na giełdzie czy Allegro kupić za 50-150zł cena w zależności od wlutowanego procesora 400mhz do 850mhz i jeżeli jest ten wolniejszy to lepiej wymienić cały kadłubek niż szukać przyczyny.
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ę.
Prawdopodobnie kabelek jest przerwany lub przetarty w miejscu wyjscia z klawiatury i tylko wymiana calosci zalatwi sprawe. Ja tez mialem taki przypadek i wymienilem caly kabelek. Nie powinno byc z tym problemu jezeli uzywales kiedy lutownicy.
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.
Problem tez może lezeć w IRQ Holder. Jakieś urządzenie w kompie dzieli te same przerwanie IRQ wraz z klawiaturą. To rzadka przypadłość, ale skoro twierdzisz, ze z każdą klawiatura tak się dzieje to być moze masz juz rozwiązanie. Radziłbym przypatrzeć się przerwaniom w kompie.
Nie wiem czy interesujesz sie informatyką. Ale wystarczy podpiąć się po przerwanie klawiatury i odbierać znaki bezpośrednio z portów klawiatury, potem zapisywać to w pliku. Oczywiscie trzeba załadować ten program przy stacie kompa :) Sposób sprawdzony.
program oczywiscie ma byc napisany w asm'ie (w innym jezyku tego nie idzie napisac, chyba ze zwykorzystaniem elementów asm'a) Co do tego ze sa takie programy (a raczej wirusy), wiem ze sa, ale ja mam to napisac sam na zliczenie. Przedmiot to Architektóra komputerów. Sam sobie wybrałem taki projekt. Jak sciagne jakis kod, itak nie bede wiedzial o co...
Posprawdzaj połaczenia styków klawiszy może gdzieś się przerwało i trzeba będzie zregonerować.
przerwania timerów mają wyższy priorytet niż przerwanie transmisji szeregowej. Jeśli wysłanie tych pięciu liczb trwa dłużej niz 25ms to na pewno w między czasie będzie przerwanie od obsługujące klawiaturę, jeśli ono Ci modyfikuje jakiś wskaźnik lub inną zmienną związaną z buforem wysyłania danych to tam bedzie powód gubienia znaków. Musisz tez przeanalizować...
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...
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 ).
trochę nie tak. w tym 'switch(display_menu)' pozostaw wyłącznie obsługę klawiszy i odpowiednio ustawiaj nowy stan automatu, czyli tę zmienną display_menu. po nim daj drugi raz 'switch(display_menu) i pozostaw w nim wyłącznie wyświetlanie odpowiedniego menu w dodatku wg warunku że się zmieniło. coś takiego // wyswietlenie odpowiedniego menu // zerowy...
To nie jest kabel a taśma łączącą i jest ich dwie a po tylu latach jest ona krucha. Tego nie ma jak połączyć; są próby klejenia na zakładkę po usunięciu wierzchniej izolacji. 39 zł i jest nowa
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ś...
klawiatura przerwania przerwania timer klawiatura flagi przerwania
podpiąć lampe napęd rolet wewnętrznych wyświetlacz termometru
Sharp LC-24CHF4012E TV Firmware Update Guide Zakodowany kanał w Avira 300 - co oznacza?