Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 27 lis 2024, o 03:41


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 14 maja 2013, o 19:15 
Offline
Użytkownik

Dołączył(a): 27 mar 2012
Posty: 511
Lokalizacja: Sląsk
Pomógł: 14

Witam
Jest to mój pierwszy projekt który tu prezentuje wiec proszę o wyrozumiałość. :)
Kiedyś brakowało mi przycisków do sterowania atmegą więc akurat Pan mirek zrobił bibliotekę pod pilot RC5 było to strzał w 10, gdyż pilot posiada sporo przycisków. Jednak ja chciałem zrobić taki edytor na karcie teleVGA i chciałem tam wprowadzać tekst. Przeszukując internet natrafiłem na kilka bibliotek do obsługi klawiatury jednak w komentarzach pisało ze żadna nie działa a jeśli działa to kilka przycisków itp. Postanowiłem taką samemu zrobić. Korzystałem z internetu oraz z książki Pana mirka. Efektem mojej pracy jest w pełni działająca klawiatura która obsługuje klawiatury wraz z dodatkowymi przyciskami

Biblioteka obsługuje wszystkie przyciski na klawiaturze, robiłem ją kiedyś więc nie ma w niej jeszcze callbacków.
Do programu dostajemy 2 zmienne oraz 2 funkcje ponieważ litery są zapisywane do jednej zmiennej a pozostałe przyciski do innej to ułatwia prace z programami. Dodatkowo jest to zmienna nieblokująca programu i szybka a jeśli ktoś by chciał zablokować program do czasu naciśnięcia przycisku to jest i taka funkcja. W pliku nagłówkowym .h mamy też możliwość ustalenia czy te zmienne maja się zerować czy nie. Polega to na tym że gdy wciskamy przycisk i ustawimy na zerowanie zmiennych to ta zmienna będzie miała wartość kodu ANSCi lub innych klawiszy funkcyjnych od momentu wciśnięcia klawisza aż do momentu zwolnienia klawisza. Jeśli ustawimy żeby zmienne się nie zerowały to wtedy w programie musimy ją zerować. Wygląda to na mętlik niepotrzebny ale mi to się przydaje. Nazwy klawiszy funkcyjnych są zdefiniowane nazwy w pliku .h
Biblioteka posiada oczywiście przyjazny wybór portu jednak !uwaga! program działa na INTx więc bibliotekę przystosowałem automatycznie do zmiany tego inta w pliku .h Gdy naciśniemy shift i jakąś literę to ta litera będzie duża a bez shifta mała, to samo dotyczy znaków <,>,:,", i pozostałe. Jest to automatycznie ustawiane oraz nie posiada polskich znaków. Od lini DATA jak i CLK należy dać rezystor do +5V ok 4,7kom
Jeśli coś by nie chciało chodzić to pisać chętnie odpowiem i pomogę.
Jeszcze takie 2 małe uwagi czasami klawiatura przestaje działać żaden przycisk nie chodzi, tego niestety nie wiem jak naprawić ale dzieję się to rzadko i w określonych sytuacjach np. gdy zmieniamy wartość zmiennej to może się zaciąć. Mi tylko wtedy się zacina. Kolejna uwaga to przed inicjalizacją biblioteki należy dać opóźnienie ok 2s może mniej. gdyż klawiatura nie zdąży się zainicjować.
A teraz biblioteka. Przykładowego programu nie podaję ale jeśli ktoś by miał kłopot to wtedy ewentualnie napiszę. biblioteka napisana na atmega32 i wewnętrzny oscylator 8Mhz. To chyba nie ma znaczenia bo timerów nie ma więc powinna chodzić przy wyższej częstotliwości
Powiem tyle że w warunku if sprawdzamy czy ta zmienna przyjmuje np. literę lub liczbę dla klawiszy funkcyjnych. A w main musimy tylko ja zainicjować i biblioteka jest gotowa do pracy
Jak widać nie jestem dobry w opisywaniu więc może ciężko to zrozumieć. :)

keyboard.c
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


keyboard.h
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

_________________
Programowanie to styl życia :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 maja 2013, o 20:40 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 25 kwi 2013
Posty: 88
Pomógł: 1

Tego właśnie szukałem... Dzięki ;)

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 maja 2013, o 20:56 
Offline
Użytkownik

Dołączył(a): 27 mar 2012
Posty: 511
Lokalizacja: Sląsk
Pomógł: 14

O jednej rzeczy tylko zapomniałem. Klawiatura musi posiadać złącze PS/2 ale dzięki przejściówce może podłączyć klawiaturę z USB sprawdzałem i działa.
I przy okazji udało mi się znaleźć schemat podłączeniowy klawiatury do uC. Chciałem zrobić schemat ale niestety jestem dopiero po formacie komputera i nie mam programu do tego. http://radzio.dxp.pl/pckeyboard/kbd_schemat.png Dodam ze części mojej biblioteki nie pochodzą z tej strony :)

_________________
Programowanie to styl życia :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 maja 2013, o 21:37 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8587
Pomógł: 337

JAk chcesz to STMA to jest na mojej stronie

_________________
Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 14 maja 2013, o 21:58 
Offline
Użytkownik

Dołączył(a): 27 mar 2012
Posty: 511
Lokalizacja: Sląsk
Pomógł: 14

Co do zawieszenia się to chodzi oto że normalnie ona chodzi dobrze cały czas ale to zależy od programu w którym ona pracuje. Ja zamontowałem ja do odtwarzacza plików dźwiękowych wave. Z książki mirka do modulacji głosu to nie kiedy jak się coś źle nacisnęło za szybko czy jak to zacięła ale to może wina programu.

_________________
Programowanie to styl życia :D



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sty 2016, o 10:54 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 546
Pomógł: 27

Witam a czy jest możliwość zrobienia takiej jak by przejściówki że mikrokontroler emuluje klawiaturę podłączoną do PC (podłączam mikrokontroler pod usb lub PS2 oczywiście przez jakąś przejściówką a komputer wykrywa to jako klawiaturę.)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 10 sty 2016, o 18:05 
Offline
Użytkownik

Dołączył(a): 02 gru 2015
Posty: 546
Pomógł: 27

DZIĘKI.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO