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...
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.
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...
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...
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 :)
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 ?...
Na mój nos to jest uszkodzenie wewnątrz klawiatury - przerwane ścieżki. Każdy następny montaż przerywał następne.
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 ?
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...
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.
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!!
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.
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.
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.
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
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ż...
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 :-)
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.
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;)
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.
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...
Zacznij od przerwania timera.
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...
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...
sprawdź taśmę klawiatury czy są wszystkie elementy albo czu tasiemka nie jest przerwana
Ekran działa? Z ciekawości napisz do NDN :) może przypadkiem mają jakiegoś trupka z serwisu. Klawiatura jest rzeczywiście silikonowa - przerwała.
Ja bym się wpiął na INT0 lub INT1 bo sporo programów do klawiatury wykorzystuje przerwania.
Taka rada stan klawiszy najlepiej odczytywać w przerwaniu timera.
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?...
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...
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...
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...
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ę.
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 ,...
Powodem że nie mogłem wejść w bios ,była uszkodzona klawiatura , dokładnie 4 ścieżki na klawiaturze przerwane , dzięki wszystkim za zainteresowanie.
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?
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...
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.
Wystarczy że czytasz stan klawiatury w przerwaniu zegarowym co 0,1s i masz spokój.
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...
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...
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.
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...
ok,dzięki za wszelkie posty.Już sobie poradziłem.zrobilem na przerwaniu od timer'a.Dzieki!Pozdrawiam!
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?;]
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...
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...
Przeniosłem z: Schematu/instrukcji...
Rozbierz go i sprawdź czy nie miał jakiejkolwiek ingerencji z cieczą. Jeżeli takową znajdziesz weź spirytus i przeczyść miejsce zalania. Jeżeli nie pomoże odklej membranę klawiatury i sprawdź czy pod nią także nie ma zalania. Jeżeli żadne z w/w działań nie pomoże, to będzie musiał niestety udać się do serwisu ;).
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.
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...
V-USB wymaga aby żadne przerwanie nie zajmowało więcej niż 25 cykli (12MHz wersja), co jest poza zasięgiem "Arduinowych" przerwań.
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
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...
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.
Możesz mieć uszkodzoną klawiaturę (przerwane ścieżki lub zwarte). Nową klawiaturę znajdziesz tu: [url=http://sklep.north.pl/karta/klawiat...
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...
Hmmmm... tylko timerów potrzebuje do innych celów (m.in. do UART). W asemblerze robiłem tak, że w głównej pętli chodziła mi klawiatura, po nacićnięciu przycisku wykonywała się procedura i albo następował powrót do sprawdzania klawiatury, albo w procedurze było oczekiwanie na naciśnięcie określonego klawisza (nie było "omiatania" przez cały czas). Chodzi...
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...
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.
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ż.
(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.
Dzięki za informację. Tak jak pisałem wcześniej końcówek portu D chcę wykorzystywać do klawiatury, wyświetlacza i przerwania. Na razie klawiatura i wyświetlacz nie kolidują ze sobą. Wykorzystanie przerwania miałoby być do odbioru sygnału w podczerwieni właśnie zamiast klawiatury. Chciałbym by mikrokontroler sterował urządzeniem do wyboru : poprzez klawiaturę...
Widziałem swego czasu gotowe klawiatury 16-stkowe na i2c dodatkowo z przerwaniem o naciśnięciu klawisza.
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...
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ę...
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....
Przenieś albo obsługe klawiatury albo silnika to przerwania.
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.
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ś
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ć...
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...
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...
_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...
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...
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...
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...
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...
Posprawdzaj połaczenia styków klawiszy może gdzieś się przerwało i trzeba będzie zregonerować.
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.
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....
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.
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.
Można spróbować znaleźć linię (na złączu) na klawiaturze zwieraną poprzez wciśnięcie shiftu i porównać czy w tym samym miejscu jest na starej - może po prostu masz ten przypadek 0.01% kiedy dostałeś fabrycznie nową, uszkodzoną klawiaturę - przerwana żyła z shift'u. Wtedy jak najbardziej wskazana byłaby jej wymiana...
Przyszło mi do głowy że może to działać na zasadzie różnic w rezystancji które procesor jakoś wyłapuje Może kolega zacznie od WIKI: [url=https://pl.wikipedia.org/wiki/Klawi... Wiem że to żadna pociecha, ale ja już dwie klawiatury załatwiłem kawą i tak: pierwszej nie udało mi się reanimować, a drugiej nawet nie rozkręcałem tylko od...
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,...
Witam, żadnego przerwania nie widać... posiadasz lutownice chociaż?
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.
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ć :)
A czasami BIOS (czy co tam siedzi) nie powinien zająć się obsługą klawiatury i udostępnić przerwanie do jej obsługi?
Łatwiej było by jak byście zerkneli do pierwszego linku który podałem w poprzednim poście. Wyraznie widać tam po kródkiej analizie że bezpośrednio z portu to ja tego ustrojstwa nie wysteruje gdyż na chociaż jednej lini zawsze musi być stan wysoki i te minimum 10mA. Klawiatura bedzie w przerwaniu. Wiersze podłączone do bramki OR a wyjście na zewnęczne...
opóźnienie przerwaniu rs232 przerwaniu enkoder przerwaniu
bezpiecznik termiczny schemat komunikat micra satel transformator ferrytowy
device sleep klimatyzacja galanz
Podłączenie manometru do rozdzielacza T: wymagania i wskazówki Koszt obudowy do prostownika TELWIN LEADER 400 Start