Spróbuj wstawić asm("nop") albo jakieś opóźnienie 10us pomiędzy PORTx a PINx. I zobacz czy coś to poprawiło. [syntax=c] uint8_t getR() // funkcja zwracająca numer wiersza { DDRB = 0xFF; //ustw kolumn na wyjście DDRD = 0x00; // ustw wierszy na wejście PORTB = 0x00; // ustw masy na wyj PORTD = 0xFF; // ustw podciągających _delay_us(10); val1 = PIND; val1...
To o czym tak dyskutujecie jest zestandaryzowane w tym sensie że kupując lub zamawiając klawiaturę u producenta podajecie mu parametr nKRO gdzie n jest ilością klawiszy naraz wciśniętych bez "ghosting"-u. Czyli klawiatura 4KRO może działać poprawnie do 4 klawiszy 10KRO - 10 klawiszy. Poszukaj w azji firm - wiele robi na zamówienie już od 5-10szt za...
2*10 + 3
A mi się udało znaleźć. I to na stronie producenta bascoma. Wpisałem w google "bascom getkbd" :) https://avrhelp.mcselec.com/index.html?g... [syntax=vbnet]'-------------------------... 'name : getkbd.bas 'copyright : (c) 1995-2005, MCS Electronics 'purpose : demo : GETKBD 'micro : Mega48...
Najzwyklejsza dioda np : 1n4148. Podpinasz to pod np wejście INT0 w procku :)
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....
Samuraj otóż niestety nie działa Ponieważ trzeba podać wskaznik (char*)
Jednocześnie z biblioteczką, którą zamieściłem wcześniej, stworzyłem kiedyś, biblioteczkę do obsługi klawiatury 4x4 w której wszystkie kolumny i wiersze mogą być podłączone do dowolnych nóżek procesora AVR. Nie musi to być jeden port i nie musi być zachowana żadna kolejność. W załączniku zamieszczam omawiany kod źródłowy. Wystarczy tylko wypełnić makra...
1. Odpowiedz na pytanie kolegi milika. 2. Pokaz wiecej kodu. 3. Po co sprawdzasz flage Z (nie znam tego jezyka wiec pewnie do konstrukcji for i=1 to 3 )? BF
Może zmniejsz prędkość obsługi klawiatury. Zwykle jest to bardzo szybkie a w tym przypadku trzeba zdecydowanie spowolnić.
Po wywołaniu WAIT_KEY kod klawisza masz w akumulatorze i zpisujesz wszystkie "próby" na stosie do czasu aż zakończysz 0x0A. Potem zdejmujesz tylko te dwa ostatnie znaki (0x0A) i ten kod. A wszystkie pozostałe nie są ze stosu zdejmowane. Masz wtedy niezrównoważony stos. Musisz mieć tyle samo rozkazów POP ile PUSH, bo inaczej Ci się stos przepełni dość...
nie wiem po co ci takie cos.... ja bym zrobil tablice dim tablica(16) as integer tablica(1)=11 'to co ma sie pojawic zamiast 1 tablica(2)=22 tablica(3)=33 B = Getkbd() a wywolywac np.tablica(B) i przypisywac do C. no nie wiem,chyba tak ... pozdrawiam
Musisz wyzerować flagę, a czy zrobisz to normalnie czy przy użyciu tej bzdurnej biblioteki to już nie ma znaczenia. 4\/3!!
DS 13.2.4 Reading the Pin Value
Jeśli możesz zmienić połączenie klawiatury z uC , to zainteresuj się funkcją Getkbd w Bascomie , bo to najprostsze rozwiązanie dla początkującego , a schemat połączeń jest dostępny w pliku pomocy Bascoma. Piotrek
Musisz sobie utworzyć coś w rodzaju wskaźnika do tablicy. Może to być np int, który będzie wskazywał na kolejne indeksy w tablicy. Wpisujesz zmienną do tablica[indeks] i zwiększasz indeks.
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,...
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ś
nie zadziała w przypadku klawiatury matrycowej Zauważ , że w Twym układzie emiter jest na masie procesora i wejścia wyzwalania ( pewnie wejście to jest już odpowiednio zaprojektowane przez producenta ), natomiast w układzie matrycowym 'masa' jako taka nie istnieje. Proponuję użycie takiego transoptora : H11F1M . Spełni wszystkie wymagania , niskie...
Z ciekawości zobaczymy jak sobie poradzi (at)ElektrodaBot Witam, tworzę projekt zamka szyfrowego przy użyciu bramek, dekoderów oraz klawiatury matrycowej i mam problem przy uzyskaniu kodu Graya. Jeżeli dobrze rozumiem za sprawą klawiatury matrycowej dostajemy "1" w rzędzie od 1 do 4, a także kolumnie od 1 do 4 i wychodzi nam taki kod: Przykład po kliknięciu...
Jeżeli skaczesz do podprogramu Dalej to mozę potem z niego powróć a nie skacz z niego ponownie do Klaw z którego to Dalej został wyzwolony. Dodatkowo możesz zwiększyć stos bo często przez niego program sypie się na podprogramach. Sugeruję również w danej chwili ustawienie tylko jednej nóżki jako wyjście gdyż jak u ciebie gdy 3 są wyjściami i na nich...
Może i nie o to ale jak widać jesteś jedyny który w ogóle coś podpowiedział 😜
Kolega niech raczy zauważyć że kontraktron ma coś takiego jak drżenie styków. Może być tak że przerwanie jedno twoje załaczenie potraktuje jak wiele zboczy je wzywalających i cały pomiar weźmie w łeb bo się wykona po prostu wielokrotnie. Musisz użyć więc kolejnego sprawdzania stanu styku juz po wykonaniu przerwania tak aby się upewnić ze jest to "trzymanie"...
Faktycznie działa tak samo, ale problem pozostał. Nadal 1. kolumna jest przesunięta na koniec. Dodano po 34 Problem rozwiązany, wystarczyło dodać delay po zmianie stanu na porcie B. Niby 1 us ale wpływa na działanie programu. Najwidoczniej bez opóźnienia nim stan się ustabilizował to pętla przeszła już do następnej iteracji. Niby drobnostka, a zabrała...
Hej, 1.Kod poprawiony. Patrz na "{" po main() i na "()" przy wywołaniu funkcji 2.Jak piszesz kod to wsadz go w code (patrz u góry lista opcji podczas pisania postów) #include <stdio.h> #include <mcs51reg.h> #include <at89c51ed2.h> #include <moje.h> //#include <t89c51ac2.h> //=========== #define column0 P2_6 #define column1...
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,...
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...
Najlepiej poszukać w książce Pana Gałki. Z tego co pamiętam, wbudowana w DSM-51 funkcja zwraca w formie wyniku bajtowego wartość, odpowiadającą naciśniętemu klawiszowi. Można zatem, z polecenia "If zmienna = enter then zmienna = #". Oczywiście w assemblerze, więc MOV A,zmienna CJNE A,#(tutaj wpisać wartość którą zwraca funkcja dla enter",pomin_poprawianie_znaku...
BlueDarco, no fajnie, każesz gościowi pobierać prąd ze źródła napięciowego zaznaczając tylko jeśli rezystory nie są za małe Skoro to ma być klawiatura rezystancyjna to robisz tak: 1. Konfigurujesz źródło napięcia odniesienia na napięcie zasilania procesora. 2. Górny koniec drabinki podpinasz pod to samo napięcie, którym zasilany jest procesor. Masz...
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...
I słusznie, że tylko wtedy, bo tylko wtedy, gdy żaden przycisk nie jest wciśnięty Key ma wartość 0 - wartość ustawianą domyślnie (dla uściślenia 0 z tabeli keyRemap nie zostanie nigdy zwrócone, bo nie ma fizycznie podłączonego przycisku na tym "skrzyżowaniu" kolumn i wierszy)...r Dodano po 5 ...chyba zaczynam już "łapać", gdzie tkwi błąd koncepcyjny...
zaraz po wpisaniu danych do pamięci :) pozdrawiam rs
Witam, Kluczem zasilania jest tutaj stabilizator napięcia LM2596. Wykorzystuję jego nóżkę ON/OFF do załączania i wyłączania zasilania.
Wiesz co chcesz wybrac i na jakiej wierszu kolumnie ma się znaleźć -> skanujesz kolumny aż na tej co chcesz znajdzie się 1 (0) i wtedy wystawiasz na odpowiedni wiersz 1 (0)... Cała filozofia... 20ms to wieczność...
A tak na marginesie, jak nauczycielka mówi Ci w klasie byś usiadł w drugim rzędzie, to zmieniasz kolumnę ławek czy wiersz (ławkę) ? jak mi nauczyciele mówili bym siadał w ostatnim rzędzie to zmieniałem wiersz (ławkę) i siadałem w którejkolwiek kolumnie ale w ostatnim rzędzie (wierszu). co do bascoma i konfiguracji klawiatury, poczytaj helpa, on na...
Proponuje wytestowac, wystarczy miernik. Podłączasz, jedną elektrode miernika do byle którego wypr., naciskasz jakiś klawisz i szukasz z którym wyprowadzeniem powstało przejście. Jesli z żadnym, to próbuj inny klawisz. Jak znajdziesz przejście, to określiłeś do której kolumny i do którego wiersza należą te dwa wypr. Tylko które jest wierszem, a które...
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.
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.
Witam. W oparciu o mikrokontroler STM32 nucleo-F401RE i platformę mbed chciałbym zbudować coś w stylu prostego alarmu do domu jednorodzinnego. Nie mam niestety pomysłu jak wykonać procedurę sprawdzania czy też ustawiania hasła użytkownika w oparciu o klawiaturę matrycową (np. aby uzbroić alarm wystukaj 4-cyfrowy kod i zatwierdź #). Na razie udało mi...
Tak na pewno już było to na forum! Funkcja Szukaj jest czasami bardzo przydatna, posty były nawet ze schematami. Rav
Witam, chciałem obsłużyć klawisze strzałka w górę i strzałka w prawo (klawiatura matrycowa, lcd). Jednak poniższy kod nie rozróżnia, który klawisz jest ktory a ja nie wiem czemu. [syntax=asm] STRZ_P: MOV A,#0C0H;A, ustawienie na pozycje w dolnej linii ADD A,R7;zwiekszenie A o nr petli LCALL WRITE_INSTR MOV A,#'^' LCALL WRITE_DATA LCALL WAIT_KEY CJNE...
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>...
Witam. Nie mogę sobie poradziź z wprowadzaniem liczb dwucyfrowych z klawiatury matrycowej. Moja klawiatura jest obsługiwana z wykorzystaniem przerwania od Timera0. Jeśli możecie to prosze o pomoc i propozycje rozwiązania tego problemu. Poniżej zamieszczam część mojego kodu programu ....... [wyciety fragment] ....... Do 'pętla nieskończona DO...
na wstepie chcialbym zaznaczyc ze pierwszy raz mam do czynienia z programem Eagle:) a moj problem (nie smiac sie) polega na narysowaniu klawiatury matrycowej (3X4) wiem ze moge to recznie wszystko narysowac, i tak tez zrobilem, ale nie orientuje sie ktos czy nie istnieja jakies gotowe biblioteki z tego typu elementami (na stronce firmowje sprawdzalemi...
Może ktoś napisać program w asemblerze co steruje klawiaturą która podpięta jest do 8051 ??
noo wszystko to wiem tylko nie wiem w jaki sposób rozwiązać to programowo :/
Jest taki klawisz jak "szukaj' a poza tym są Google. Dostaniesz w odpowiedzi kilkadziesiąt pozycji. Tutaj gotowca nie dostaniesz, chyba, że zapłacisz, ale wtedy musisz wysyłać zapytania na PW.
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...
Niestety dalej to samo...
' start |Oragnizacja przyciskow do obrazka przed linia ' klima on | 3 pcfy 1 sterownie przekaznimi dwa do sterosnia lampakmi wyswietlacza 'oplaczae on | ' nawieww on | 'stop | ' klima off | 'opalecze off | 'nawiew off | ' rezerwa | ' vol up | ' vol down | 'chan up | 'chan down | Dim Pcf1 As Byte ' ustawinie zmiennych pcf1 sterujacy przekaznikami Dim...
kontroler klawiatury matrycowej odczyt klawiatury matrycowej obsługa klawiatury matrycowej
temperatura opornik slaba bateria nadajnik veronica
Zamiennik tranzystora RHU002N06 - PSMN1R0-60YS Jak zmniejszyć moc pieca Immergas Vitrix Exa?