http://obrazki.elektroda.pl/6241985300_1... Witam. Chciałbym przedstawić projekt, który jakiś czas temu zakończyłem i użytkuję codziennie. Jest to zamiennik standardowego wyświetlacza radia Update List występującego w samochodach marki Renault, rozszerzający funkcjonalność całego zestawu o funkcje takie jak: - nawigacja GPS, - zestaw...
while (1) { IOSET0 = 0x00004000; //ustawienie jedynki na pierwszej linii klawisz= IOPIN0; //odczytanie stanu portu switch (klawisz &= 0x001e0000) //sprawdzenie na którym pinie jest stan wysoki { case 0x00020000: {LCDText("1");bre... case 0x00040000: {LCDText("4");bre...
http://obrazki.elektroda.pl/6130528400_1... http://obrazki.elektroda.pl/2906458300_1... Witam wszystkich. Chciałbym przedstawić na łamach forum mój projekt, który powstaje już od około pół roku. Tematem projektu jest komputer 8-bitowy oparty o procesor Z80. Założeniem jest, aby zbudować funkcjonalny komputer 8-bitowy...
Witam wszystkich, jestem pocztykujacym w temacie programowania i napotkalem sie na problem odczytu klawiatury matrycowej 4x4 w mikrokontrolerze atmega32. program wydaje mi sie poprawny ale czyta tyklo dwa klawisze. #include <util\delay_basic.h> #include <stdio.h> #include <avr/io.h> #include "lcd.h" #include <string.h>...
http://obrazki.elektroda.pl/1998348900_1... Witam, chciałbym wszystkim przedstawić projekt sterownika matrycowego wyświetlacza LED. Na początek proszę tylko o nie ocenianie wykonania płytki (na płytce uniwersalnej/pająk) bo jestem świadomy jak ona wygląda i jak ją wykonałem. Historia Pomysł projektu narodził się, gdy jakieś pół roku...
Badaj stan bitów w ten sposób: if (PINB & _BV(PINB4))... raczej if (!(PINB & _BV(PINB4))) //czy=0 lub po "ludzku" if(bit_is_clear(PINB,PB4)... Kod który przytoczyłeś realizuje coś takiego: if (4==0)... To dla przykładu z PINB4, raczej nie bedzie działać :-) Ten kod nic nie realizuje - kompilator go ignoruje....
OK, zmienię na HiZ, ja wystawiam 1 na "wyłączonych" wierszach. Przetestuję z HiZ i wstawię nowe obrazki. Dodano po 11 Z HiZ jest o niebo lepiej, ale nadal przy ostatnim przypadku, mamy zły odczyt uniemożliwiający określenie faktycznej konfiguracji wciśniętych klawiszy. https://obrazki.elektroda.pl/4718374200_... Dodano po 53 Ale chyba...
Napisałem program do obsługi klawiatury matrycowej. Podłączone diody LED wskazują binarnie wartość wciśniętego przycisku, a wyświetlacz LCD pokazuje szesnastkowo wciśnięty przycisk. Klawiatura podłączona do PORTD mikrokontrolera. http://obrazki.elektroda.pl/1733933700_1... Problem w tym że wszystkie przyciski działają poprawnie oprócz jednego...
Cześć. Zrobiłem coś takiego - czyli odczyt stanu klawiatury matrycowej na przerwaniach dla ATMega128. Kod w załączniku. Nie wiem tylko jak zrobić, żeby odczytywał jedno wciśnięcie klawisza. Przy takim programie po wciścnięciu klawisza rombie wykonywanie tego przerwania jak najęty aż do puszczenia klawisza. Mnie chodzi o to, że jak wcisne klawisz ma...
No własnie po przeczytaniu opisu (w książce) przykładu programu do odczytu klawiatury matrycowej zobaczytałem taki wpis i zglądam do dokumantacji ATmega i widzę że faktycznie tak cos takiego jest. Wczesniej na to nie zwrócilem uwagi. Niestety w tej książce nie było opisane o co chodzi. Mam prośbę czy możesz mi coś więcej o tym opisać? Nie za bardzo...
Ja we wszystkich urządzeniach robię klawiaturę bardzo prostą. Matryca bez optoizolacji, rezystory podciągające są wewnętrzne, włączane tylko na czas odczytu, żadnych kondensatorów, diod etc. Cała reszta to program - skanowanie, filtracja drgań styków oraz zakłóceń. Działa to dobrze nawet przy wysokim poziomie zakłóceń. Algorytm działania jest podobny...
Witam! Proszę o pomoc. Piszę program obsługujący klawiaturę matrycową - w sumulatorze wszystko działa, ale w momencie wgrania do ATmega128 nie działa. Klawiatura wygląda tak: http://img485.imageshack.us/img485/2132/... tranzystory podpięte są do PORTC0-3 Linie wierszowe klawiatury do PORTA0-3 Dioda LED podłączona jest do PORTB0 Cały program...
1. Aktywacja wiersza klawiatury. 2. Odczyt stanu kolumn dla tego wiersza. Resztą bym się nie przejmował, bo to w zasadzie nie działa. Klawiatury nie skanuje się w pętli, tylko na przerwaniach. Tak, jak to jest zrobione, jakakolwiek reakcja na klawisz następuje po zwolnieniu go, co jest strasznie wkurzające dla użytkownika. Kod jest ciekawy dydaktycznie,...
No to jest oczywiste, planuję 4 wyjscia i 5 wejsc, nie wiem tylko jak zrobić sprawdzanie tego który przycisk jest wciśnięty programistycznie, bo logicznie to się wydaje wysylanie 1 na wyjscie i odczyt z wejsc i tak w petli, a nie wiem wiem jak to zapisac ani co wysylac dokladnie. Proszę poprawić pisownię. Robak
To w takim układzie jak będzie wyglądał odczyt (zakłóciło mi to cały pogląd na informacje uzyskane z książki, ale to najwidoczniej coś źle zrozumiałem ) Do tej pory próbowałem to zrobić eeprom_read_float (&ee_K_Pi, K_Pi); , czy według float eeprom_read_float (const float *__p) __ATTR_PURE__ eeprom_read_float (&ee_K_Pi) ?
ppawel12: 1. Podział na pliki nie zmniejsza kodu. 2. Co do wykorzystania peryferiów to zależy od projektu 3. Autor napisał że jest to ZL3AVR 4. Odnośnie braku konfiguracji INT0 - masz racje, o tym zapomniałem 5. Dla klawiatury matrycowej jest tylko jeden możliwy wariant całego odczytu klawiatury w przerwaniu - 0 na wszystkie kolumny, a jak wystąpi...
Witam Chciałem wykonać małą centralkę alarmową (o ile można to tak nazwać) na początek chciałem uruchomić odczyt klawiatury matrycowej i wyświetlanie postępu wpisywania kodu. Wzorując się kursem języka C z jednej ze stron internetowych przerobiłem zamieszczony tam kod pod mojego Attiny2313 po skompilowaniu i wgraniu programu do uC program się uruchomił...
to ma działać z Rpi czy bez? najprościej dla takiej liczby IO w jednej rozdzielni zrobić moduły przekaźnikowe na rs485. Rok temu wykonałem taka płytkę która z jednej strony pasuje do popularnej obudowy na szynę DIN a z drugiej posiada 12 przekaźników i złącze pod arduino nano + rs485. Takie płytki można zestawiać i w zasadzie otrzymać dowolną liczbę...
Hmmm dopiero zaczynam z ARMem a jak kolega Freddie Chopin nie chce pomóc to niech zachowa uszczypliwe uwagi dla siebie. Wydaje mi się że ten portal powstał po to aby dzielić się wiedzą i doświadczeniem a nie wygłaszać bezsensowne docinki i dzięki temu powiększać sobie liczbę pkt na koncie. Jeżeli kolega Freddie Chopin chce sobie "ulżyć" to proponuję...
Witam! Mam problem z zamkiem szyfrowym. Mam taki kod: [syntax=cpp]/* KURS AVR-GCC cz.4 Zamek na szyfr (schemat i opis działania w artykule) układ atmega16 (1MHz) */ /**** PLIKI NAGŁÓWKOWE ****/ #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> /**** DEFINICJE FUNKCJI ****/ /* Inicjalizacja i konfiguracja sprzętu */ void...
Witam. Od jakiegos czasu programujemy w assemblerze , ale dostałem na zaliczenie program ktorego za zadne skarby nie moge wymodzić ... ogólnie chodzi o szczegóły . Dostałem taki temat projektu programu na dsm51 : Na wyświetlaczu LCD wyświetla się napis "Ula" , po naciśnięciu Enter klawiatury matrycowej wyjeżdza z wyświetlacza LCD na wyświetlacz 7 segmentowy...
Poczytaj o odczycie klawiatur matrycowych, tu masz schemat, który pokazuje sposób podłączenia: https://obrazki.elektroda.pl/2529794200_...
Walczę z tym już dość chwilę i nie potrafię zrozumieć, na jakiej zasadzie to działa. Wygląda na odczyt sekwencyjny (klawiatura matrycowa). Procesor wystawia 1 na jeden z pinów KEYMATRIX pozostałe ustawia jako wejścia i sprawdza czy na którymś pojawi się 1. Po chwil zmienia pin na wejście a kolejny ustawia jako wyjście i wystawia 1, znowu sprawdza czy...
(at)dyerseve I tu jest problem. Musisz zmienić polaryzację tak jak przedstawiłem to na schemacie. Podajesz stan wysoki z segmentu, przez rezystory 180 om wprowadzasz do CPU gdzie stoi rezystor do zasilanie. Wynik odczytu ???
Na samym attiny nie zrobisz. Braknie pinów procesora.Potrzebujesz dekodera do przemiatania wierszy lub multipleksera do odczytu kolumn (klawiatura matrycowa odczyt sekwencyjny brak wbudowanego kontrolera). Rozumiem że połączenie elektryczne masz opanowane - taśmy klawiatury nie polutujesz - potrzebne gniazdo. Znacznie łatwiej by było użyć klawiatury...
Najprawdopodobniej we fusebitach masz WŁĄCZONY interfejs JTAG (bit JTAGEN), co powoduje, że piny PC5..2 są "zablokowane" Musisz wyłączyć we fusebitach interfejs JTAG, tak będzie najprościej. Możesz też spróbować na samym początku programu: [syntax=basi4gl] MCUCSR=&B10000000 MCUCSR=&B10000000 'koniecznie ta linijka ma być 2 razy - to celowe [/syntax]
Pomiędzy zmianą stanu portu B, a pierwszym odczytem portu PIN wstaw koniecznie nop - problemem nie jest twój program, lecz synchronizator portów w procesorze, który wprowadza pewne opóźnienie. Przejrzyj notę katalogową dokładnie.
Dla potrzeb budowy zegara (4 klawisze) wymyśliłem sobie, że klawiatura zostanie zrealizowana jako matryca o rozmiarze 2x2. Dobre! A ile linii zaoszczędziłeś :-) niby wszytko też działa ALE co kilka naciśnięć (nie za każdym razem) da się zauważyć, że mylone są kolumny klawiatury. Szklana kula jest w naprawie. Pokaż schemat i program. Tak na ślepo, to...
Zastosowanie klawiatury PC jest nie możliwe. Więc może nie całą klawiaturę, ale układ kodujący do PS/2. A to już łatwo oprogramować w mikrokontrolerze. Oszczędność czasu i 20 portów. No 18, bo ze 2 będą potrzebne do odczytu.
Zrozum, że to forum nie potrzebuje specjalnego działu do pokazywania "algorytmów" odczytu stałej z pamięci, bo to jest podstawa opisana w manualu danego układu. Algorytm to jest FFT, PID, stabilizacja parametru układu, zmniejszenie wpływu niepożądanych zmiennych na pomiar, a nie to o czym ty piszesz... Sorry. To że istnieje forum nie zwalnia nikogo...
Reasymując: nie znamy schematu i nie wiadomo, jakie są objawy niedziałania programu. No, to już możemy pomagać, bo Autor nie chce użyć debuggera, żeby sprawdzić, co się dzieje w procedurze odczytu klawiatury.
Czyli zamiast robić na przerwaniu INT0 zrobić na timerze? Ale wtedy schemat by pozostał taki sam bo co wtedy zrobić z sygnałem z klawiatury do INT0? A kod do odczytu aktualnego klawisza jest w porządku?
AVE... Ja mam takie pytanie: dlaczego nie użyć albo rejestrów przesuwnych, albo czemu nie wziąć jakiegoś taniego mikroklocka z dużą ilością pinów, albo mniejszego i rejestrów by zrobić uniwersalny sterownik klawiatury matrycowej? Koszt + przede wszystkim, miejsce. Juz wolałbym się bawić potencjometrami. Chyba zrobię tak: podzielę matrycę w pionie na...
Nie ma w tym nic dziwnego, po prostu standardowa klawiatura matrycowa. W tym układzie klawiatury port P0 pracuje jako wyjście, a porty P1 i P2 i P3.7 jako wejścia. Zasada odczytu jest następująca: - Ustaw "0" na linii P0.0, pozostałe linie P0 na "1"; - Odczytaj stan portów P1 i P2 i P3.7. "0" na linii portu oznacza naciśnięty przycisk (odpowiednio 64-71,...
Żeby na 100% nie było różnicy między badanymi stanami pinów podczas kolejnych badań oraz zapisu do rejestru, powinieneś tylko w jednym miejscu odczytać PIND i zapisać w zmiennej. Dopiero zmienną testować i gdy trzeba zapisać do tablicy. Sprawdź (pokaż) jak wygląda zawartość pliku .lss. Może trzeba powalczyć z instrukcją asm volatile("nop"), zeby program...
Witajcie, Klawiatura ADC: Udało mi się pozyskać stary tuner Sony ST-120 jako "dawcę" do przeróbki. W związku z tym powstała potrzeba dołożenia obsługi klawiatury. Na próbę zbudowałem matrycową rezystancyjna klawiaturę oparta o odczyt z ADC i powiem Wam, ze działa to bardzo stabilnie. Jeśli będą problemy to przejdę na PCF8575. Na schemacie jest miejsce...
I w 50 cyklach zegara - więc np. do 10 000 odczytów na sekundę potrzebny jest zegar 500 kHz.
Problem to dopiero będziesz miał, jak będziesz próbował użyć przerwań zewnętrznych. Naprawdę - użyj timera. Szukaj na forum milionów tematów o używaniu przerwań do odczytu stanu przycisków. W google zresztą też znajdziesz.
Przyjmujesz, że pierwsza wprowadzana cyfra to dziesiątki: {W nawiasach klamrowych wynik danej operacji } Pom=0; Wczytaj x1; {Mnożenie przez 10} pom:=x1; pom:=pom+pom; {pom=x*2} pom:=pom+pom; {pom=x*4} pom:=pom+x1; {pom=x*5} pom:=pom+pom; {pom=x*10} Wczytaj x2; pom:=pom+x2 {pom zawiera teraz x1*10+x2, x1,x2, wpisane cyfry} jeżeli pom jest jednym bajtem...
W c ten program gdzies w internecie widziałem.. Bedzie wymagał być moze małego dostosowania. Mam go ale niestety w asm pod atmege 16. ; Programowalny pilot RC5, obsługa interfejsów optycznych i pamięci EEPROM ; Rafał Baranowski (C) 2004 .INCLUDE "m16def.inc" ; SEGMENT DEKLARACJI .EQU OSC_FREQ= 1000000; częstotliwość pracy w Hz .EQU...
Jeżeli się nie mylę, w LPT jest tylko 5 pinów wejściowych (nie 4). Niestety to i tak za mało na sterowanie matrycowe. Możesz zastosować stary trik i odwrócić matrycę 8x6 na 6x8. Na wejścia LPT zamontować układ w stylu '244, który będzie multipleksował 4 z 8 kolumn. Sześć pinów wyjściowych użyć do wyboru wiersza a siódmy i ósmy do wyboru górnej lub dolnej...
Jeśli podłączymy przyciski tak, że każdy ma dwukrotnie większą wagę niż poprzedni, to mamy w efekcie zwykły DAC, gdzie kombinacja przycisków zapodaje wartość binarną. W takiej sytuacji nie ma problemu, aby rozróżnić dowolną kombinację wciśniętych przycisków Ale to tylko takie fajne jest w teorii. Praktycznie tolerancja oporników musi być wysoka, by...
tak jak to jest na pewno nie zadziała. W twoim programie klawiatura będzie podpięta pod port a i tyle. Drugiej nie będzie. Chyba że sobie napiszesz jakąś procedurkę która będzie kontrolować obie naraz ale wtedy do odczytu nie będziesz korzystał z funkcji getkbd(). Poczytaj opis Bascoma.
To chociaż napisz ile masz do dyspozycji pinów wejścia-wyjścia. Czy sześć pinów to za dużo? (przy użyciu demultipleksera 74*154 który zmieni stan czterech linii wyjściowych na 1 z 16, razy dwie linie wejściowe do odczytu) Czy przejrzałeś w sieci schematy urządzeń w których jest podłączana klawiatura matrycowa do mikrokontrolera? Na samej elektrodzie...
bo kolejne odczyty wierszy dają opóźnienie. A jeśli efekt na wyjściu pojawi się po więcej niż powiedzmy 8 taktach to już problem tego co podłączono do portu.
Główną procedują odczytu klawisza klawiatury jest podprogram Mult_kl Opis jej działania : W pierwszej pętli For.... NEXT I program przeszukuje po kolumnach klawiatury (3 kolumny klawiszy a 4 wiersze w klawiaturze). Jeśli program wykryje naciśnięty klawisz to ustawia odpowiednie rejestry DDRD. Następnie sprawda czy został nacisniety jakis klawisz If...
Witam. Zakładam nowy temat ponieważ szukałem informacji na ten temat lecz nie znalazłem odpowiedzi. Chodzi o wprowadzania liczb 2 cyfrowych z klawiatury matrycowej. Do odczytu klawiszy wykorzystuję instrukcję "Getkbd". Nie wiem jak dokonać odczytu ile razy został wciśnięty klawisz. W celu wprowadzania liczb wielocyfrowych z klawiatury. Za pomocą zmiennej...
jest możesz zastosować pętle for jednak ten kod jest bardziej uniwersalny, łatwe wykonanie przypisania kodów konkretnym przyciskom oraz łatwe podłączenie klawiatury każde wyprowadzenie możne wręcz znajdować się na innym pinie procesora. poza tym NOPy są istotne, gdyż za szybie odczytanie kolumn po ustawieniu wierszy powoduje zły odczyt musi minąć co...
tu masz kod ktory dawno temu splodzilem w asmie na C51: ASM_klawiatura: ;-------- Przemiatanie klawiatury -------------------------------------- MOV Licz,#4d MOV wynik,#0111$1111b ;wedrujaca 0 = GND Tutaj: MOV A,wynik ;przepisz do Acc RL A ;przesun w lewo MOV Port,A ;wyslanie jedynki MOV wynik,A ;zapamietaj kolumne NOP ;odczekaj chwilke ;-)...
Wrzucam tutaj wyrwane kawałki z "chodzącego" programu dot. obsługi kl. Nie analizowałem tego czy będzie działać. Mogłem coś jeszcze przeoczyć. Myślę, że pozwoli to się zorientować w zasadach obsługi. Program dotyczy matrycy 12klawiszowej (3 kolumny po 4 klawisze). pzdr KeyPTRDS1;licznik odczytow klawisza LastKeyDS1;ostatnio odczytany klawisz SavdKeyDS1;ostatni...
LED1...5 będą działać prawidłowo, bo ich sterowanie jest całkowicie niezależne od U1..5. Odnośnie czujników U1...U5 przyznam, że nie wiem co masz na myśli. Jeżeli chcesz zrobić matrycę XY, to generalnie trzeba się wzorować na klawiaturze matrycowej XY. Wtedy czujniki trzeba łączyć w wiersze i kolumny z odpowiednimi układami wybierania wiersza i kolumny....
Dzieki za podpowiedzi, tylko jest taka kwestia, ze te uklady tranzystorowe maja wspolpracowac z klawiatura matrycowa o roznej ilosci wierszy i kolumn. Takze chyba Twoich propozycji nie da sie tu zastosowac, bo tak naprawde wyjscie z Q1 zalezy de facto od wyjscia z Q2. Poprawcie mnie jezeli sie myle, bo czasami sie juz troche zapetlam ;) Moje rozwiazanie...
W takim przypadku masz wszystko ok. Podpowiem ci tylko że jako gotową klawiaturę możesz wydłubać coś ze starych telefonów stacjonarnych, można kupić naklejane klawiaturki membranowe lub metalowe wandaloodporne. Możesz też odczytać 8 przycisków za pomocą tylko 3 linii procesora. Układem np 74LS164 liniami DATA i CLK wysyłasz 1 stan wysoki kolejno na...
Ale chodzi ci o odczyt przez RPi klawiatury podpiętej pod GPIO, czy RPi ma udawać klawiaturę? Klawiszy możesz podpiąć dowolnie dużo - zobacz np. klawiaturę z PC - ponad 100 przycisków, a potrzebne są tylko dwa GPIO. Natomiast bez przesadnych kombinacji możesz podłączyć klawiaturę matrycowo. Google ci wskażą na czym sztuczka polega.
Obsługa klawki 4x4 void KBD_init(void) { KBD_DIR = 1<<KBD_col1 | 1<<KBD_col2 | 1<<KBD_col3 | 1<<KBD_col4 | ~(1<<KBD_row1 | 1<<KBD_row2 | 1<<KBD_row3 | 1<<KBD_row4); KBD_PORT = 0xFF; }; unsigned char KBD_read(void) { KBD_PORT=0xff; KBD_PORT &= ~(1<<KBD_col1);...
Snifowanie na 100kHz da się zrobić nawet na ATTiny13 (ja zrobiłem I2C slave i działa), ale i tak najpierw musisz przeanalizować w jaki sposób rzeczony Philips odczytuje klawisze, by móc zinterpretować pozyskane dane. Jak pisze (at)khoam proste to to nie będzie, ale trochę pracy i da się zrobić. Nie wiem jak początkujący jesteś więc najpierw musisz poczytać...
Witam Idea słuszna. Tyle że ta metoda nie pozwala wykryć czy naciśnięte są dwa klawisze, co nieraz może być przydatne. Patrzę w książkę i klawiszę zciągają do zera poszczególne linie i tak wygląda to u panów Gałków. k l a w i s z bit CSKB0=21h CSKB1=22h 0 0 8 1 1 9 2 2 ← strzałka w lewo 3 3 → strzałka w prawo 4 4 ↑ strzałka w górę...
Jezeli chcesz mam dzialajacy program w ASM do odczytów matryc na wylącznikach mono/bistabilnych. Co do 15 m kabla to jestem zdania ze łatwiej i taniej bedzi eprzeniesc atmege w strone klawiatury nawet jezeli mialaby byc osobna niz ciagnąc tyle drutów i walczyc z pojemnosciami i innymi zakłóceniami co potem wplywa niekorzystnie na jakosc dzialania programu....
Witam! :arrow: Kolego zbyrek nie musi być zaraz ADC (ten raczej wykorzystuje się do poważniejszych zadań ;-) ) - wystarczy wbudowany do uPC komparator (pomiar czasu ładowania kondensatora) i taką klawiaturę 16 przyciskową (ale nie może to być klawiatura matrycowa 4x4) można obsłużyć tylko przez jedną linię I/O mikrokontrolera. Nie mniej takie proste...
Witam, Uwielbiam nasze AI - "Różnice napięć na pinach TM1639 w oczyszczaczu powietrza - co sprawdzić?" Przyjrzyj się, co jest podłączone do pinu 4, to pin do obsługi przycisków/klawiatury. Jest to tryb matrycowy. Pin 6 to wejście/wyjście danych, tu nic nie powinieneś robić, bo zakłócasz całą komunikację. Gdzie masz te -5 V? ... Na oko to wbrew poradom...
Witam Forumowiczów Chciałbym przedstawić kolejny swój układ, który kiedyś został zrealizowany dla uczelni w ramach projektu. Jest to 16-klawiszowa klawiatura matrycowa mająca współpracować z płytką ewaluacyjną mikrokontrolera 8051. Mimo, że jest to układ dedykowany, lecz nic nie stoi na przeszkodzie, aby znalazł zastosowanie także w innych urządzeniach....
Witam. Wiesz,przede wszystkim sądzę że powinieneś zastosować jakąkolwiek eliminację drgań styków klawiatury bo wnioski z działania programu mogą być mylące. Zrób to na przykład tak: If pina.4=0 then waitms 25 if pina.4=0 then Liczba = 10 Bitwait Pina.4 , Set End If End if Każdy mikrowyłącznik drga podczas naciskania,może to powodować nieoczekiwane niewłaściwe...
LJMPSTART ORG100H START: LCALLLCD_CLR MOVDPTR,#KEY_CODE ;adres tablicy kodów LOOP_NO: MOVR0,#CSKB0;adres klawiszy 0..7 MOVXA,(at)R0 ;odczyt stanu klawiszy CPLA JNZKEY_YES ;czy klawisz naciśnięty INCR0 ;adres klawiszy 8.. MOVXA,(at)R0 CPLA JZLOOP_NO ;czy klawisz naciśnięty KEY_YES: ;eliminacja drgań styków MOVR2,A ;zapamiętaj stan klawiszy...
Szukałem i zadziwiło mnie że wszędzie opisany jest sposób odczytu jednego klawisza albo zaraz całej klawiatury matrycowej. Moja jest tego 3 rodzaju - poprzez dekoder 1z15 na BCD. Poczytałem nieco helpa plus Wasze wskazówki (za które niezmiernie jestem wdzięczny) i zmieniłem nieco to co wcześniej napisałem w załączniku wyżej. '************* Konfiguracja...
Szkoda książki, bo wszystkie przykłady w niej zawarte są przedstawiane właśnie na DSM-51. Ta książka pozwoliła mi poznać i zrozumieć asembler na 8051. Na szczęście jest jeszcze dostępna w handlu (teraz już chyba 4 wydanie). Trzeci wynik z googli: http://www.sklep.gildia.pl/literatura/46...
Robię moduł do odczytywania stanu klawiatury matrycowej. Pomyślałem, że każdemu przyciskowi będzie odpowiadała jedna zmienna o wartości 0 lub 1. Gdy sprawdzam stan przycisku to jeżeli nie wciśnięty to pomiń kolejną linię, a jeżeli wciśnięty to wykonuj dalej. Problem w tym, że program(symulator) nie uznaje(druga linia): sbrsr16,0 .setSwith4 =0 jako linijki...
Sprawdzenie czy klawisz wciśnięty jest długo czy krótko jest bardzo proste do wykrycia jeśli czytasz dane z klawiatury używając przerwań. Zawsze po wciśnięciu klawisza zapisujesz sobie nr ostatnio wciśniętego klawisza. Jeśli przyjdzie przerwania a żaden klawisz nie jest wciśnięty to ustawiasz tą wartość na 0. W obsłudze klawiatury sprawdzasz czy aktualnie...
Witam Nie znam schematu dlatego trudno mi jest powiedzieć czy program jest napisany dobrze. Być może jest tam klawiatura matrycowa i obsługuje się ja nieco inaczej niż klawisz podpięty pod port. Druga sprawa to deklaracja portu na początku programu. Najpierw deklarujesz cały port jako wejście a następnie deklarujesz każdy pin z portu C osobno. Tak być...
Nie bardzo mi się chciało wycinać nieznaczące części programu, dlatego umieszczam go w całości. Jest to program termostatu do pieca, w którym elementami grzejnymi są pomienniki podczerwieni. Program zawiera: - obsługę klawiatury 4x4 - obsługę wyświetlania LCD - odczyt temperatury z DS'a - regulację/stabilizację temperatury i wysyłanie po RS'ie stosownego...
Sam sobie odpowiedziałeś - nie jest to możliwe. Popularne klawiatury matrycowe nie są przystosowane do wykrywania naciśnięcia kilku przycisków na raz, bo rzadko jest takie wymaganie. Powiedziałbym, że jest to ergonomicznie dosyć karkołomne. Zgadzam się z tym, że w 95% przypadków nie jest potrzebny odczyt 3 przycisków naciśniętych jednocześnie, teraz...
Tutaj jest prościej niż w pełnej matrycy, bo fizycznie niemożliwe jest zwarcie więcej niż jednego styku przez rolkę. Trzeba tylko zagwarantować na tyle dużą częstotliwość odczytu, by nie pominąć żadnej zmiany stanu rolki. Jednak, ponieważ nie ma diod przy przyciskach, w sytuacji gdy naciśnięte są równocześnie np. 3 pierwsze przyciski (MUTE, VOL- i VOL+),...
Bez problemu mozna zrobic obsluge klawiatury matrycowej, LCD, RS, ADC na jednym timerze + petla glowna a efekt sekwencyjnego wywolywania kodu jest i tak niewidoczny dla uzytkownika. Jak chcesz migac 3 diodami, np. 1 co sekunde, 2 co dwie sekundy, 3 co trzy sekundy to bez problemu zrobisz to na timerze wywolywanym co sekunde. A i tak jest to przerost...
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. Zacznę od konfiguracji.Do portu A atmegi32 mam podłączone wyświetlacz LCD 4x16 w trybie 4 bitowym bez odczytu flagi co powoduje że zarządzam także sygnałami E i RS(r/w do masy).Oczywiście piny danych wyświetlacza są podłączone do bitów najstarszych uC. Do tych samych pinów (PA7, PA6,PA5,PA4) mam podłączone 4 linie od klawiatury matrycowej które...
jest skręcone Zdjęcia pokazują urządzenie rozkręcone - uruchamianie takiego jest niebezpieczne więc zakładam, że można je poskręcać, dla bezpiecznych prób, zostawiając na wierzch tylko panel sterowania (ma dość długi przewód). Jak chcesz zdalnie naciskać przyciski to może podłącz 4 przekaźniki stykami równolegle z przyciskami i sterując cewkami przekaźników...
//CIACH Widze danielbela że wykorzystujesz atmege 16 więc można tam wykorzystać przerwania PCINT (wywoływane zmianą stanu) więc można wsio robić w przerwaniu i bez diodek (jeśli nie chcemy skanować jej ciągle). //CIACH Niestety nie da się wszystkiego zrobić na przerwaniu. Tj. można zrobić odczyt samego naciśnięcia klawisza. Jednak jak będziemy chcieli...
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...
Witam. Próbuje uruchomić klawiaturę matrycową 3x3, Znalazłem obsługę takiej klawiatury tutaj : http://hobby.abxyz.bplaced.net/index.php... No usunąłem zbędny kod do obsługi innych rzeczy, została tylko klawiatura. Chcę uzyskać efekt, że po naciśnięciu przycisku zmienia mi się wartość na wyświetlaczu. Na tej podstawie już będę mógł później...
A ja potrzebuje sprzedac mo Zasialcz: Stabilizacja napiecia i pradu - 12-bitowy konwerter A/C - Cieklokrystaliczny wyswietlacz matrycowy z podswietlaniem, 2x16 cyfr; jednoczesny odczyt pradu i napiecia - Kalibracja programowa - Inteligentny system chlodzenia - Zlacze RS232 + oprogramowanie w standardzie - Akustyczna (beeper) sygnalizacja przeciazenia...
Troszkę masz to rozbudowane. Ja posiadam identyczną klawiaturę do twojej. Ja nie sprawdzam naciśnięcia klawisza na przerwaniach tylko w pętli. Ja rozwiązałem to tak. Przy takim rozwiązaniu nie ma powtarzania klawisza przy ciągłym wciśnięciu ale można to skonfigurować przez polecenie Debounce Doda że ten kod działa w moim sterowniku i nie miałem z nim...
Podłączyłem klawiaturkę matrycową do AT89C4051 w sposób pokazany na rysunku. Diody służą jako zabezpieczenie, aby nie spalić portu w przypadku naciśnięcia kilku klawiszy jednocześnie. Niestety, P1.0 i P1.1 są także wejściami komparatora i działają jakoś inaczej niż pozostałe piny portu P1. Postanowiłem podciągnąć je do Vcc przez rezystory 10k. Niestety...
Troszkę już się programowało ale zazwyczaj zwykłe aplikacje a teraz doszedł jeszcze sprzęt , trzeba w oku mieć jakby oscyloskop, hehh . , Ps. Sprawdziłem opcję z moją poprawką hula i buczy ... zamiast 7 wpisujemy "F" no i oczywiście ze zmianą dla kolumn jak w poprzednim poście. Pozdrawiam Dodano po 14 Poniżej poprawiony kod przykładu dla klawiatury...
Witam, od jakiegoś czasu tworzę pewien projekt, który obecnie wykorzystuje klawiaturę z drabinki rezystorowej ([url=http://majsterkowo.pl/drabinka-rez... oraz LCD zgodny z HD44780. Projekt obecnie jest na płytce stykowej, zasilany jest stabilnym napięciem +5V z USB. Sprawa zaczyna wyglądać...
Witam Mam taki problem: Potrzebuje za pomoca mikrokontrolera symulować klawiature matrycowa, układ zewnętrzny który ma odczytywać jaki klawisz został wybrany przez mikroprocesor przemiata stan niski co 20ms. Czy można to zrobić tylko za pomoca software 9jeśli tak to jak??), czy trzeba dodawac dodatkowe układy np bramki transmisyjne> Z góry dziekuj za...
Jestem początkujący jeśli chodzi o asemblera i mikrokontrolery i próbuję napisać sobie program do wykrycia który klawisz klawiatury został naciśnięty. Czy ten program poniżej by działał? Założenia: klawiatura matrycowa 4x4 jest podpięta do portu P1 mikrokontrolera w ten sposób, że wiersze (S0-S3,S4-S7,S8-S11,S12-S15) są podpięte pod piny P1.0-P1.3 a...
Temat może nie jest skomplikowany co trudny do realizacji. Zacznijmy od tego jak działa taka klawiatura instrumentu. Jest to typowa klawiatura matrycowa https://starter-kit.nettigo.pl/2017/03/o... Procesor instrumentu muzycznego przemiata określonym stanem logicznym kolejne kolumny i odczytuje jaki jest stan logiczny...
Może zrób tak ale ja bascoma nie polecam to straszne g*** if pinx.y and pinz.w =1 then LCD"text" end if Czy jakoś tak. Inna opcja to wiadomo jakie stany są w klawiaturze matrycowej można zrobić tak na jednym m porcie najlepiej: If pinx=0b00100100 then LCD"text" Jeśli procek ma robić za sterownik takiej klawiatury to tak łatwo się nie da ale wszystko...
Coraz więcej elektroników sięga po mikrokontrolery. Na swoje potrzeby tworzą mniej lub bardziej rozbudowane systemy. W każdym z tych projektów można wyróżnić kilka podstawowych bloków. Ich realizacja sprzętowa w wielu przypadkach jest taka sama. Wniosek nasuwa się sam - systemy takie mogą być składane z modułów. Pozwolę sobie zainicjować dyskusję nad...
Stany pinów nie mają prawa się zmienić. Klawiatura matrycowa ogólnie rzecz biorąc działa tak że trzeba na nią podawać odpowiednie sygnały żeby odczytać jaki przycisk jest wciśnięty. Poczytaj o klawiaturach matrycowych.
Zasadniczo jest to dowolne, czy wysterowujesz rzędy i odczytujesz stan kolumn, czy zrobisz odwrotnie. Zgadzam się z tym w 100% ale chyba nie zrozumiałeś mojego pytania nie chodzi mi o to czy wejścia i/lub wyjścia ustawiam na rzędy czy kolumny bo tak jak piszesz nie ma to znaczenia. Chciał bym wiedzieć do których linii portuB podłączam: rząd0, rząd1,...
Witam. Kolega djFoBoS nieźle objaśnił. Ciekawe czy ktoś początkujący zakuma cos z tego. Sprawa przedstawia się nastepująco mając matrycę 4x4. Rezystorów podciągajacych nie potrzeba jeśli robi bezpośrednio na porcie gdyż kontroler ma już rezystory podciągające - to nie to co AVR że można je odłączyć. Więc na kolumny wpisujesz np. jedno "0" a na resztę...
No więc "popełniłem" takie cudo :P Projekt "na szybko" więc prosz go dokładnie zbadać i wytknąć wszelkie błędy - będę wdzięczny. http://obrazki.elektroda.net/33_12632479... Jak to działa? 1. Po naciśnięciu klawisza układ kontroli klawiatury (754C922) bada z częstotliwością ok 10 kHz stan klawiszy i po ustaleniu się 1 na którejkolwiek pozycji...
Dim V As Eram Byte 'zmienna V będzie umieszczona w EEPROM Dim B As Byte 'zmienna będzie w pamięci SRAM B = 10 V = B 'można normalnie korzystać z takich zmiennych B = V 'na przykład odczytać zapisana wcześniej daną albo tak Dim B As Byte WriteEeprom B , 0 'zapis do pamięci EEPROM to ci wrzucilem z helpa... powiedz czy czy ci sie przydalo albo jak to...
Witam Kolegów, Dotychczas, korzystając z timerów programowych, z powodzeniem korzystałem z prostej funkcji obsługi przycisków, która zwraca informację o krótkim/długim naciśnięciu wybranego przycisku. Ostatnio, funkcję tą zmodyfikowałem do obsługi typowej klawiatury matrycowej...jednak nie funkcjonuje tak, jak potrzeba a problem jest, jak myślę, prosty....
Dzięki za podpowiedz Dr.Vee Twoja sugestia okazała sie bardzo przydatna. Teraz tylko musze wykombinować jak aby rozrzeszyć to na pełną klawiaturę matrycową(4x4). Żeby uzyskać płynną zmianę prędkości będziesz musiał do generacji impulsów użyć układu timera. Zmieniając czas pomiędzy wystąpieniami przerwania od timera zmienisz prędkość obrotową silnika....
Oczywiście że mogę w SDCC to będzie jakoś tak ;) char znak; While (i=1) do { znak = getkey(); printf ("To jest znak ", %c, znak); }; W Pas5x proponuję Var i: Boolean; znak: char; i:=true; ... while (i = true) begin znak := Readkey; Write ("To jest odczytany znak", znak); end; ... I powinno super działać :)
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...
Robię urządzenie , które ma być pewnego rodzaju nagrywarką sygnału DMX. Sygnał DMX to specyficzna wersja transmisji szeregowej . Muszę odczytać 128 słów 8 bitowych i zapisać je w pamięci zewnętrznej. Na każdą sekwencję zakładam 8 kroków. Te słowa są wysyłane cały czas. Jeden taki ciąg znaków określa konkretną scenę. Chcę zapisywać po kolei takie sceny...
Mam problem, który komplikuje projekt. W projekcie używam klawiatury matrycowej puszczonej po pcf8574. Mam tam funkcję która odczytuje długie przyciśnięcie przycisku na klawiaturze: [syntax=c]void setup() { keypad.begin(); keypad.setHoldTime(1300); // ustawienie czasu po jakim przycisniety przycisk jest uwazany za przytrzymany keypad.addEventListener(sprzawdzanieDlug...
Cześć. Tak jak napisałem w nazwie tematu posiadam ARM'a STM32F072RB. Podłączyłem kolejno kolumny, później wiersze klawiatury matrycowej 4x3 do portów GPIOC1-GPIOC7. Chcę odczytywać wciskane klawisze na klawiaturze i napisałem jak na razie taki kod: [syntax=c] #include "stm32f0xx.h" #include <stdio.h> volatile uint32_t timer_ms = 0x0; void delay(int...
klawiatury matrycowej kontroler klawiatury matrycowej obsługa klawiatury matrycowej
czujnik junkers falowanie silnika niskich obrotach toshiba naprawa dysku
myjka ciśnieniowa stanley myjka ciśnieniowa stanley
Nissan Qashqai J11/J – kolejność pinów żaluzji chłodnicy, kolory kabli: biały, czarny, niebieski Fiat Seicento nie odpala – diagnostyka, czujnik CPS, CODE, pompa paliwa, akumulator