Ciekawe jest to widać w twoim profilu (Pomógł: 79927) :P ale do rzeczy. Według mnie coś takiego można zrealizować w następujący sposób: - konfigurujesz przerwanie zewnętrzne żeby było wyzwalane przerwanie zboczem opadającym, rosnącym etc. - w tym przerwaniu uruchamiasz timer który zlicza sobie impulsy - jeżeli zliczy określoną ilość impulsów to wykonujesz...
Generalnie problemem jet to co opisał Sareph - Twoja funkcja jest beznadziejnie napisana :lol: Tak arduinowo :D Po kiego grzyba sprawdzać czy przycisk jest jeszcze naciśnięty i dopiero wtedy reagować - jak wspomniano przyciski same z siebie bez naciskania nie generują sygnału, więc skoro jakiś wystąpił to wystąpił i koniec i nie trzeba sprawdzać za...
Pytanie stawiane było czemu źle działa Bo jest źle napisane. A najlepiej jechać po innych zwłaszcza po tych co się uczą. Po takich co się uczą nikt nie jeździ. Po takich którzy "chcą" odpowiedzi, ale wiedzą lepiej od odpowiadających - już tak. Freddie Chopin dzięki jakiś konkret co do przerwań, powiedz mi jeszcze czy będę mógł modyfikować wypełnienie...
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ć,...
To jest moja opinia i nie musi być absolutnie prawidłowa dla każdego przypadku. Jak najefektywniej obsługiwać klawiaturę matrycową w C (cyfry + kilka klawiszy odpalających funkcje specjalne) ? Wydaje mi się że w obsłudze timera zrobić przemiatanie wierszy/kolumn (kwestia nomenklatury) i jednocześnie rozróżnianie klawiszy (kod klawisza dekodować na podstawie...
https://obrazki.elektroda.pl/1761046600_... Pokażę tu jak uruchomić z Arduino czterocyfrowy wyświetlacz 7-segmentowy sterowany poprzez rejestr przesuwny 74HCT164 i cztery tranzystory BC546. Płytka z wyświetlaczem znów będzie odzyskana z elektrośmieci. Będzie to już kolejny temat, w którym uruchamiam wyświetlacz, gdyż omawiałem już...
https://obrazki.elektroda.pl/9443989800_... Jednopłytkowy komputer oparty na mikroprocesorze 8085 Założeniem było zaprojektowanie i zbudowanie prostego komputera na jakimś prostym procesorze w celu nauki assemblera. Konstrukcja oparta jest na wcześniej wspomnianym mikroprocesorze Intel 8085. Dlaczego akurat taki? Taki akurat miałem...
IRQ tester https://obrazki.elektroda.pl/3243423400_... IRQ Tester to proste narzędzie, głównie do testowania czasu odpowiedzi na impulsy, lub czasów międzyzboczowych dostarczonego sygnału. Program został napsiany na ukontroler AVR Atmega168, a jego głównym zadaniem jest funkcja multiwibratora monostabilnego, którego działanie polega...
https://obrazki.elektroda.pl/3711757000_... Witajcie, dzisiaj przedstawię uruchomienie układu AS1115 z Arduino w oparciu o gotową bibliotekę. AS1115 to kontroler wyświetlacza 7-segmentowego (do 8 cyfr) oraz klawiatury (do 16 klawiszy) z interfejsem I2C, oferującym dodatkową linię-przerwanie dla zdarzeń pochodzących od klawiatury. Temat ten...
U mnie w kodzie nie ma ...... /* * sterownik dla Margas * wersja dla NUCLEO STM32F446RE * działa dzieki życzliwości i zaangarzowaniu członków forum ELEKTRODA * wspomagających moją skromną wiedzą programistyczną * za co jestem im bardzo a to bardzo wdzęczny * data xx-xx-2024 */ #include "STM32TimerInterrupt.h" #include "STM32_ISR_Timer.h"...
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...
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...
Witam Mam takie pytanie otóż od dawna myślę jak można wykorzystać klawisze zamykania, hibernacji i ponownego uruchomienia na klawiaturze? Jak to można zaprogramować bo normalnie klawisze nie działają. Słyszałem że trzeba pogrzebać coś w biosie. I jeszcze jedno mam dodatkowy klawisz ''turbo'' do czego on może być bo też nigdzie nie działa? Z góry dzięki...
Mam problem z klawiszem w klawiaturze laptopa. Jest to standardowa klawiatura 101/102 klawisze. Klawiszem tym jest średnik. nie wiem czy ma to jakies znaczenie, ktory to klawisz. problem polega na tym ze wszedzie tam gdzie mozna pisac, poczynajac od edytorów tekstu, przez google, gg az nawet tutaj piszac ten post wyskakuja mi nagle sredniki, tak jakby...
Witam, mam problem z klawiaturą, musiałem coś kliknąć na niej i teraz jak przyciskam jakąś literę na klawiaturze i ją przytrzymuje to klawiatura zamiast pisać cały czas tą literkę to ją przerywa. Klawiatura: Blow Adrenaline
W jaki sposób usunąć klawiaturę systemową, która pojawia się podczas logowania się do systemu w momencie wyświetlania się okna Zapraszamy. Chcę nadmienić, że w centrum ułatwień dostępu w zakładce używaj komputera bez myszy i klawiatury nie mam zaznaczone w kwadraciku.
Witam!Mam nastepujacy program obslugujacy klawiature matrycowa na 89S52: void delay(int del) { int i; for(i=1;i<del;i++); } void migaj(char a) { P0=~a; delay(10000); P0=0xFF;; delay(10000); } void main(void) { char tmp,low; tmp=0x8F; P2=0xbF; while(1) { P2=0x7F; //ustaw wiersz low=P2&0x0F; //kolumny if(low==0x07)migaj(16); if(low==0x0b)migaj(15);...
mam zepsuty klawisz (/) sam się włączą - jak go wylaczyc z poziomu dos ( Windows , czasami chodzi ok a czasami sam z siebie wpada i na ekranie np w Word drukuje mi /////////////////////// cos takiego przerywa sie to klepiąc dowolny inny klawisz pomyślałem ze rozwiązaniem bedzie usuniecie obsługi tego guzika , bo i tak rzadko jest używany
Witam Mam masakryczny problem z klawiaturą, mianowicie opóźnienie. W systemie np. w notatniku itp. jest wszystko ok, nie ma opóźnień. Natomiast w grach jest 2-3 sekundowe. Instalowałem przeróżne gry, od najbardziej wymagających po te najniższe (Crisis - Tibia), wszędzie to samo. Z myszką nic się nie dzieje. Próbowałem tych sposobów: - Aktualizacje sterowników...
Witam. Zastanawiam sie nad kupnem: http://www.cyfronika.com.pl/klawiatury.h... Klawiatura UM215.3 Jednak nie ma nigdzie do tego schematu i nie wiem czy jest na czyms takim linia do wywolania przerwania na mikrokontrolerze. ( nie chodzi o linie kolumn i wierszy )
Magiczne hasło brzmi PULL-UP. Sprawdź w datasheet i tysiącach publikacji w sieci.
Obsługa klawiatury znajduję się w nieskończonej pętli for ale już tego fragmentu nie wrzucałem. Obsługę klawiatury nie mam zrobionej na przerwaniu zewnętrznym. A czy wysyłanie komend SKIP ROM i CONVERT T można w ogóle wyrzucić z tej pętli?
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...
Impulsator nie będzie pracował na przerwaniu tylko zwykle w pętli do loop bo takie rozwiązanie wystarczy. W tejże pętli będą także wysyłane sygnały regulacyjne po I2C jako odpowiedź na regulacje wykonane impulsatorem oraz wyświetlane dane na LCD. Procedura obsługi przerwania od Rx (MIDI) odczytuje bajt i jeżeli równy jest 176 (nasze dane) to czyta dwa...
Napisałes że najwyższy priorytet mają informacje z PC więc do nich musisz podporządkować pozostałe kroki programu. Z drugiej strony obsługa w przerwaniu portu szeregowego i przepisanie danych do tablicy to raczej działanie "błyskawiczne" ;)...
W przerwaniu sprawdzam 2 ostatnie stany jeśli są takie same zakładam że przycisk został wciśnięty W czasach "bez procesorowych", były układy scalone eliminujące drżenia styków. Dla jednego syku był to szeregowo-równoległy rejestr przesuwny, 8-wejściowa bramka NAND, 8-wejściowa OR i przerzutnik RS. Gdy na wszystkich wyjściach rejestru były jedynki,...
markosik20: Aaa widzisz, jednak nie wszystko napisałem: unsigned char znak_klaw = 0x00; sbit dana_klaw = P3^1; sbit zegar_klaw = P3^2; Zmienna zegar_klaw to sygnał zegarowy z klawiatury, a dana_klaw to dana przesyłana z klawiatury. No ale zauważ, że po wywaleniu funkcji inicjalizacja_LCD() program działa prawidłowo więc wszystkie funkcje while() w przerwaniu...
jak już chesz koniecznie marnować wolne piny (bo może masz ich zbyt wiele) to lepiej podłącz sobie te przyciski przez 74HC30 i będziesz miał jeden wspólny sygnał dla przerwania INT jednocześnie wejścia 7430 podłącz pod jakiś port i w przerwaniu odczytasz sobie ich stan. Nie jest to najlepszy sposób bo to samo można zrobić w przerwaniach i uzyć klawiatury...
Najlepiej zrobić to w obsłudze przerwania od timera. Tak jak pisze kolega Alagner - licznik ustawić na np. 100Hz, a w obsłudze przerwania muszą być liczniki programowe realizujące odliczanie czasu - pierwszy liczy do 100, co daje na jego wyjściu 1s, a następny może już odliczać sekundy, następny minuty, godziny, itd... Jednocześnie w tym przerwaniu...
Witam Trzeba zrobiś sobie jakąś tablicę z kodami klawiszy jakie mają być dekodowane i teraz jak procedura nie jest w przerwaniu kolejno wystawiasz zero naprzykład na kolumny kolumny i z wierszy odczytujesz który klawisz naciśnięty, pobierasz z tablicy kod i masz. W przerwaniu jeden bajt na licznik naprzykład kolumn i co przerwanie zwiększasz licznik...
No więc kombinowałem już wczesniej z tymi różnymi opóźnieniami. Wstawiałem je w kilka miejsc na wszelki wypadek i zmieniałem na bardzo duże. Niestety poległem ;) Często klawisze powtarzały się same, nawet bez wciskania przycisku :/ Nie wiem do tej pory co to było. Ale rozwiązałem już problem. Przynajmniej na razie wszystko działa jak powinno. ;) Zmieniłem...
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ś...
FastAVR jest mocno związany z asemblerem i daje bardzo efektywny kod wynikowy - Bascom się chowa przy nim. Ale tak jak w asemblerze trzeba pamiętać o deklaracji i inicjacji każdej zmiennej. Pierwsze 3 linie definiują typ proca, głębokośc stosu, prędkość zegara - ważne dla symulatora. Definiuję przerwanie od Timera0 i ustalam tryb pracy Timera0 Definiję...
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...
Skoro optymalne rozwiązanie już znalazłeś to dyskusja jest czysto akademicka :) Ale ja chyba mimo wszystko czegoś nie rozumiem. Nawet jeśli w przerwaniu od klawiatury pozmieniasz flagi, to reakcja na ekranie pojawi się dopiero po zakończeniu obliczeń, inaczej w trakcie obliczeń i tak musisz tą flagę sprawdzić? I tu dochodzimy do sedna. Przy czym tak...
Wszystko było by fajnie z tym innym licznikiem ale niestety zostały mi tylko 8 bitowe a to za mało, musiał bym część liczenia przenieść do pętli głównej a niestety to też nie zda egzaminu bo jak np włączę menu, a tam jest np. obsługa klawiatury i chośby dyskryminacja drgania styków która wstrzymuje czas, a w tym czasie stracę impulsy i pomiar będzie...
Witam, oczywiście koledzy wyżej mają rację, problem wyświetlania można rozwiązać nawet na 1000sposobów. Ale ja z kolei pozostanę przy swoim zdaniu, że do tego aby wyświetlać cyfry na wyświetlaczach i aby odciążyć procesor - zastosujmy jak najprostsze rozwiązania. Wg mnie propozycje kolegi ktrot również będą działały i można jeszcze je mnożyć ale.......
Tak to jest, kiedy nie sprawdza się stanu przycisków w przerwaniu timera... Wracam do tematu, bo zrobiłem własny projekt zamka na szyfr z wykorzystaniem klawiatury szesnastkowej i czterech siedmiosegmentowych wyświetlaczy. Wszystko ładnie działa, tylko napisałem obsługę klawiatury z wykorzystaniem delayów, wiec widać, że słoma z butów nieco wystaje....
na każdym który napiszę jest tak samo, w nowym temacie powyżej podałem ustawienia fuse bitów, zaraz wkleję kawałek na którym teraz się bawię Dodano po 4 to kod na którym teraz się bawie '***************************************... '-------------------- konfiguracje ----------------------------------------... $regfile...
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...
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!!
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
Biblioteka Adafruit_NeoPixel blokuje przerwania więc Możesz mieć problem z obsługą klawiatury podczas jej działania.
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 :)
Co ile masz przerwanie od timera bo jak się domyślam stan klawiatury odczytujesz kilkadziesiąt razy na sekundę?? Napisze to po raz kolejny: Wywal odczyt po IIC klawiatury z obsługi przerwania!!! I rób to tak samo jak odczyt czasu w programie głównym na podstawie flagi. Po drugie po co odczytujesz za każdym razem czas z PCF'a??? Skoro masz przerwanie...
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...
Skoro opanowałeś obsługę timera, to zrób jeszcze całą obsługę LED w przerwaniu timera. W pętli głównej się multipleksowania LED nie robi, bo ciężko w to wpleść jakikolwiek inny kod. Jaki wtedy jest sens podziały projektu na pliki *.h i *.c skoro część pliku "7led.c" będę miał w pliku związanym z Timer0 ? Chyba, że coś źle zrozumiałem. Źle do tego podchodzisz....
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.
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...
A nie widzę nigdzie innego użycia przerwań niż tylko przy wciśnięciu klawisza klawiaturki. Przerwania zewnętrzne mają wyjątkowo ograniczone zastosowania. Nadają się np. do tego, żeby obsługiwać sygnały od innych układów scalonych, świadczące o tym że dany układ ma coś ciekawego do powiedzenia. Do przycisków nadają się wyjątkowo słabo, bo żeby to działało,...
To zależy co robisz w przerwaniach. Wysyłanie znaku z klawiatury zajmuje ok. 4ms. W przerwaniach obsługuję odbiór i nadawanie znaków przez uart i odczyt z ADC- i nic się jakoś nie psuje. Być może- jeszcze. Ale co ile Twój Timer0 generuje przerwanie- nie wiadomo- bo nie podałeś częstotliwości. I ile czasu zajmuje obsługa przerwania- też nie wiadomo....
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ę...
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?
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 ,...
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.
obsługa przycisku przerwaniu obsługa klawiatury arduino obsługa klawiatury
kasetą drukującą świec żarowych corsa wykrywanie kierunku prądu
zapieczone pierścienie wzmacniacz infinity chrysler
Kontrolki świateł i szybkie miganie kierunkowskazu w Audi A3 8P Zamienniki układu WT7520: HY510N, SG6105D, PS223