| Author |
Message
|
Philut Poziom 10

Joined: 10 Mar 2009 Posts: 58 Location: Trojmiasto
|
#1
10 Mar 2010 19:47 [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
Witam!
Wiem, że na tym forum jest już dużo tematów z klawiaturami, ale mało dotyczy języka C/C++... Mam klawiaturę matrycową 3x4 podłączoną do portów PD0-PD6. Porty 0-2 mam ustawione jako wyjścia a kolejne cztery (3-6) jako wejścia.
Chciałbym napisać program, który odpowiednim klawiszom przypisuje jakąś zmienną.
Kolejna sprawa jest taka, że nie wiem czy w ogóle dobrze mam te porty ustawione- czyli, że PD0-PD2 jako wyjścia. Czy jak będzie np. PD1 (wyjście) zwarty z PD5 (wejście), to Atmega będzie "kumać", że z PD1 "ucieka" prąd?? Bo chodzi mi o to, żeby przypisać tym pinom wartość 1 (portD = 0100010) w momencie wciśnięcia klawisza "8".
Mam nadzieję, że wam za bardzo nie namieszałem i że wiecie o co mi chodzi. Proszę o pomoc!
Pozdrawiam!
|
|
| Back to top |
|
 |
tadzik85 Poziom 22

Joined: 28 Feb 2007 Posts: 1637 Location: Bydgoszcz
|
#2
10 Mar 2010 21:09 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
tu kod dla klawiatury 4x4
| Code: |
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);
asm volatile("nop");
asm volatile("nop");
if( !(KBD_PIN & (1<<KBD_row1)))
return (1);
if( !(KBD_PIN & (1<<KBD_row2)))
return (2);
if( !(KBD_PIN & (1<<KBD_row3)))
return (3);
if( !(KBD_PIN & (1<<KBD_row4)))
return (KEY_A);
KBD_PORT |= (1<<KBD_col1);
KBD_PORT &= ~(1<<KBD_col2);
asm volatile("nop");
asm volatile("nop");
if( !(KBD_PIN & (1<<KBD_row1)))
return (4);
if( !(KBD_PIN & (1<<KBD_row2)))
return (5);
if( !(KBD_PIN & (1<<KBD_row3)))
return (6);
if( !(KBD_PIN & (1<<KBD_row4)))
return (KEY_B);
KBD_PORT |= (1<<KBD_col2);
KBD_PORT &= ~(1<<KBD_col3);
asm volatile("nop");
asm volatile("nop");
if( !(KBD_PIN & (1<<KBD_row1)))
return (7);
if( !(KBD_PIN & (1<<KBD_row2)))
return (8);
if( !(KBD_PIN & (1<<KBD_row3)))
return (9);
if( !(KBD_PIN & (1<<KBD_row4)))
return (KEY_C);
KBD_PORT |= (1<<KBD_col3);
KBD_PORT &= ~(1<<KBD_col4);
asm volatile("nop");
asm volatile("nop");
if( !(KBD_PIN & (1<<KBD_row1)))
return (KEY_GW);
if( !(KBD_PIN & (1<<KBD_row2)))
return (0);
if( !(KBD_PIN & (1<<KBD_row3)))
return (KEY_KR);
if( !(KBD_PIN & (1<<KBD_row4)))
return (KEY_D);
KBD_PORT |= (1<<KBD_col4);
return (0xFF);
}
unsigned char get_key(void)
{
unsigned char x;
do
{
x = KBD_read();
_delay_ms(10);
}while(x == 0xFF);
while (0xFF != KBD_read());
{
_delay_ms(10);
}
return (x);
} |
deklaracja portów:
| Code: |
// linie kolumn klawiatury
#define KBD_PORT PORTB
#define KBD_DIR DDRB
#define KBD_PIN PINB
#define KBD_col1 7
#define KBD_col2 6
#define KBD_col3 5
#define KBD_col4 4
// linie wierszy klawiatury
#define KBD_row1 3
#define KBD_row2 2
#define KBD_row3 1
|
|
|
| Back to top |
|
 |
mirekk36 Poziom 25

Joined: 17 Jun 2006 Posts: 8708 Location: Szczecin
|
#3
10 Mar 2010 21:12 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
Philut --> na główne pytanie "jaki program?" odpowiedź jest jedna - własny program.
Pytasz czy nam namieszałeś, nam nie - ale sobie? .... oooj bardzo. O jakim ty "uciekaniu" prądu piszesz?
Poza tym ATmega nic nie będzie sama "kumać" ..... procesor nie myśli. To ty musisz tak pomyśleć żeby przyporządkować sobie odpowiedni stan odpowiednich portów I/O do jakiejś zmiennej, która będzie ci podawać w programie głównym kody klawiszy.
|
|
| Back to top |
|
 |
Dr.Vee Poziom 22

Joined: 16 May 2008 Posts: 1808 Location: Wrocław
|
#4
10 Mar 2010 21:26 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
Wszystkie piny ustawiasz jako wejścia, wewnętrznie podciągnięte do Vcc
Po kolei ustawiasz 110, 101, 011 na PD(2:0) (odpowiedni pin jako wyjście i stan niski) i testujsz stan wejść PD(6:3).
Jeśli stan na pinie == 0, to dany przycisk jest wciśnięty. Inaczej jest zwolniony.
Ten sposób pozwoli Ci na poprawne obsłużenie sytuacji gdy kilka przycisków jest wciśniętych na raz.
Możesz też PD(2:0) ustawić jako wejścia bez podciągania, będzie mniej bitów do zmiany przy przemiataniu.
Pozdrawiam,
Dr.Vee
|
|
| Back to top |
|
 |
tadzik85 Poziom 22

Joined: 28 Feb 2007 Posts: 1637 Location: Bydgoszcz
|
#5
10 Mar 2010 21:28 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
przynajmniej użył cudzysłowu
musisz wykorzystać wewnętrzne pull-upy
|
|
| Back to top |
|
 |
Philut Poziom 10

Joined: 10 Mar 2009 Posts: 58 Location: Trojmiasto
|
#6
10 Mar 2010 21:44 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
Do tadzik85:
Trochę sporo tych kodów, czy na pewno nie ma krótszej możliwości??
Do mirekk36:
Wiem, że własny program, właśnie dla tego powstał ten post.
Czemu sobie skomplikowałem? Co do tekstu z tym "uciekaniem" to Dr.Vee mnie dobrze skumał.
Dla tego też najbardziej mi się podoba jego pomysł i będę drążył w tym kierunku.
Dziękuje wam wszystkim za pomoc, dam znać jak będą jakieś postępy (albo jak będę stał w miejscu...)
Pozdrawiam!
|
|
| Back to top |
|
 |
Google

|
#
10 Mar 2010 21:44 |
|
|
|
|
|
| Back to top |
|
 |
tadzik85 Poziom 22

Joined: 28 Feb 2007 Posts: 1637 Location: Bydgoszcz
|
#7
10 Mar 2010 23:23 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
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 najmniej jeden takt zegara by odczytać stan wejściowy
|
|
| Back to top |
|
 |
Philut Poziom 10

Joined: 10 Mar 2009 Posts: 58 Location: Trojmiasto
|
#8
10 Mar 2010 23:55 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
No dobra, stoję w miejscu... Porty mam ustawione tak: DDRD = 0x00; PORTD = 0xff; Mam taki testowy programik napisany, który ma mi LED'a zapalić jak którykolwiek przycisk zadziała, ale nic się nie dzieje.
Nie rozumiem dokładnie tego:
| Quote: |
| Po kolei ustawiasz 110, 101, 011 na PD(2:0) (odpowiedni pin jako wyjście i stan niski) i testujesz stan wejść PD(6:3). |
Czy mógłby mi ktoś dokładniej wytłumaczyć?
Pozdrawiam!
|
|
| Back to top |
|
 |
tadzik85 Poziom 22

Joined: 28 Feb 2007 Posts: 1637 Location: Bydgoszcz
|
#9
11 Mar 2010 00:01 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
odczyt realizuje się po "0". to najważniejsze.
zakładając ze odczytujesz z kolumn:
ustawiasz wiersze jako 0111
odczyt kolumny jeśli któraś 0 to -> zwróć kod przycisku.
przesuwasz zero wierszy czyli 1011
ponowny odczyt kolumny jeśli 0 t0 -> zwróć kod przycisku
itd
przesuwasz zero i sprawdzasz kolumnę.
Jak wspomniano musisz zastosować wewnętrzne podciągnięcia.
Najlepiej przestudiuj mój kod, długi ale bardzo prostu do zrozumienia
|
|
| Back to top |
|
 |
Dr.Vee Poziom 22

Joined: 16 May 2008 Posts: 1808 Location: Wrocław
|
#10
12 Mar 2010 00:06 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
Test dla jednego wiersza/kolumny (jak to tam masz podłączone):
| Code: |
// inicjalizacja
DDRD = 0;
PORTD = ~0x7;
// załóżmy, że PD(2:0) to wiersze, a PD(6:3) to kolumny
// testuj pierwszy wiersz - PD0 jako wyjście = 0
DDRD |= _BV(0);
if (~PIND & _BV(3))
// PIND(3) == 0 -> "skrzyżowanie" PD0 i PD3 jest zwarte!
// i tak dalej...
// zawijasz wszystko w 2 pętle i masz elegancki program :)
|
Pozdrawiam,
Dr.Vee
|
|
| Back to top |
|
 |
tadzik85 Poziom 22

Joined: 28 Feb 2007 Posts: 1637 Location: Bydgoszcz
|
#11
12 Mar 2010 00:10 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
DDRD na pewno nie będzie = 0 !
|
|
| Back to top |
|
 |
Google

|
#
12 Mar 2010 00:10 |
|
|
|
|
|
| Back to top |
|
 |
Philut Poziom 10

Joined: 10 Mar 2009 Posts: 58 Location: Trojmiasto
|
#12
14 Mar 2010 14:06 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
Witam ponownie.
Wkleiłem ten fragment programu, przekształcałem go, próbowałem różnych kombinacji, ale dalej mi to nic nie dało. Kompletnie mi to nie wychodzi! Aż straciłem ochotę, tak więc odezwę się znowu, jak przyjdą mi ponownie chęci lub nowe pomysły. Pozdrawiam!
|
|
| Back to top |
|
 |
Google

|
#
14 Mar 2010 14:06 |
|
|
|
|
|
| Back to top |
|
 |
tadzik85 Poziom 22

Joined: 28 Feb 2007 Posts: 1637 Location: Bydgoszcz
|
#13
14 Mar 2010 14:19 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
No człowieku, jakiż to problem napisać obsługę klawiatury matrycowej. Jedna z prostszych rzeczy. Dałem ci gotowca. Tylko skopiować i usunąć jedna kolumnę (wiersz). I pozmieniać kody przycisków wg własnego użytku. Do tego musisz napisać jeszcze jakaś funkcję wykorzystującą to przemiatanie. Debounce czy coś w tym stylu i gotowe.
|
|
| Back to top |
|
 |
Philut Poziom 10

Joined: 10 Mar 2009 Posts: 58 Location: Trojmiasto
|
#14
22 Mar 2010 17:18 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
Witam ponownie po krótkiej przerwie!
Posiedziałem trochę nad tą całą klawiaturką i nie mogę powiedzieć, że coś wymyśliłem, ale znalazłem coś ciekawego na sieci. Próbowałem sporo rzeczy z programem od "tadzik85", ale nie da się go skompilować - wykrywa mi mnóstwo błędów. Dodam jeszcze, że dla mnie osobiście jest mało zrozumiały, co wynika jedynie z braku wystarczającej ilości wiedzy mojej, więc przedstawię (nie mój) projekt, który zdecydowanie bardziej rozumiem i który mi już częściowo działa:
| Code: |
#define F_CPU 1000000L
#include <avr/io.h>
#include <util/delay.h>
/**** DEFINICJE WŁASNYCH FUNKCJI ****/
/* Konfiguracja sprzętu */
void init(void)
{
/* Konfiguruj portu A jako wyjścia */
/* Wyświetlacz */
DDRA = 0xFF;
PORTA = 0xFF;
/* Klawiaturka PD0..PD7 */
DDRD = 0x0f;
PORTD = 0x7f;
}
/*
Funkcja zmienia bajt w kodzie binarnym na bajt
zakodowany w BCD
*/
unsigned char bin2bcd(unsigned char bin)
{
if(bin>99) return bin;
return bin/10<<4 | bin%10;
}
/*
Funkcja sprawdza kolejno wszystkie przyciski klawiatury
i zwraca numer pierwszego wciśniętego przycisku, albo zero,
gdy żaden przycisk nie został wciśnięty.
*/
unsigned char read_keypad(void)
{
unsigned char row,col,key;
for(row=0x7e,key=1; row>=0x77; row=(row<<1|0x1)&0x7f)
{
PORTD = row;
for(col=0x10; col< 0x80; col<<=1, key++)
if(!(PIND & col)) return key;
}
return 0;
}
/**** POCZĄTEK PROGRAMU ****/
/* Definicja funkcji main */
int main(void)
{
unsigned char key;
/* Konfiguracja portów we/wy */
init();
/* Nieskończona pętla */
for(;;)
if(key = read_keypad())
PORTA = bin2bcd(key);
} |
Problem tkwi teraz jedynie w tym, że nie działa mi pierwszy wiersz (1,2,3). Dopiero jak wprowadzę zmianę w pętli for:
| Code: |
| for(col=0x10; col< 0x80; col<<=1, key++) |
i zamienię 0x10 na 0x8 działa mi pierwszy wiersz, ale pojawia się kolejny błąd: wiersze są kolumnami a kolumny wierszami... czyli zamiast 1,2,3,4,5,6,7,8,9,A,0,B mam 1,5,9,2,6,A,3,7,0,4,8,B. Z tego wynika, że moja zmiana jest zła i należy coś zmienić w pierwszej pętli for. Tam już też próbowałem i nie mam dalej pomysłów.
Co wy o tym wszystkim myślicie? Macie jakieś pomysły?
Pozdro!
|
|
| Back to top |
|
 |
tadzik85 Poziom 22

Joined: 28 Feb 2007 Posts: 1637 Location: Bydgoszcz
|
#15
22 Mar 2010 18:15 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
Jeśli mój program wywala ci błędy powiedz jakie. I dlaczego nie zrozumiał?? Zastosowałem define po to by skonfigurować podłączenie klawiatury, Każdy pin osobno wobec czego bez problemu możesz obrócić klawiaturę zamieniając kolumny z wierszami. Nazwy również są bardzo zrozumiałe. KBD_rowX to wiersz KBD_colX to kolumna.
Dodano po 7 [minuty]:
A nie działanie jednego wiersza (kolumny) jest spowodowane za szybkim sprawdzenie rejestry PIN po zmianie rejestru PORT. Taki problem sam miałem na początku
|
|
| Back to top |
|
 |
doles Poziom 15

Joined: 05 Jun 2007 Posts: 245 Location: Grudziądz
|
#16
04 Dec 2011 12:42 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
Witam, dołączę się do tematu. Piszę również klawiaturę matrycową ale oczywiście nie działa. Nie mogę zrozumieć błędu, mimo, że debuger dobrze symuluje mi pracę ... Problem tkwi w tym, że dla jednego wiersza dobrze działają klawisze i wyświetlanie cyfr 1,2,3 natomiast gdy dodam analogiczną formułę dla 2 wiersza następuje jakaś zamiana "logiki" ? Mianowicie zmienia się cyfra 1 z cyfrą 4 drugiego wiersza... Skąd to się dzieje ? Przecież z programu wg. mnie jak byk widać, że podaję zero na drugi wiersz i sprawdzam czy wykryto 0 na kolumnie 1.
Oto kod:
#include <avr/io.h> /******************************************************************/ int wyswietlacz(int cyfra); /******************************************************************/ int main(void) { DDRA = 0xF0; DDRC = 0xFF; PORTC = 0xFF; PORTA = 0xFF; while(1) { // piny PA7 - PA4 wiersze (wyjscia) // piny PA3 - PA1 kolumny (wejscia) PORTA = 0b01111111; //1 wiersz PA7 i 1 kolumna PA3 //jesli prawda odczyt portu A i pinu 3 to wyswietla cyfre 1 if(bit_is_clear(PINA, 3)) PORTC = wyswietlacz(1); PORTA = 0b01111111; //1 wiersz PA7 i 2 kolumna PA2 //jesli prawda odczyt portu A i pinu 2 to wyswietla cyfre 2 if(bit_is_clear(PINA, 2)) PORTC = wyswietlacz(2); PORTA = 0b01111111; //1 wiersz PA7 i 3 kolumna PA1 //jesli prawda odczyt portu A i pinu 1 to wyswietla cyfre 3 if(bit_is_clear(PINA, 1)) PORTC = wyswietlacz(3); PORTA = 0b10111111; //2 wiersz PA6 i 1 kolumna PA3 //jesli prawda odczyt portu A i pinu 1 to wyswietla cyfre 3 if(bit_is_clear(PINA, 3)) PORTC = wyswietlacz(4); } return 0; } /******************************************************************/ int wyswietlacz(int cyfra) { switch(cyfra) { case 0: return 0b11000000; //0 case 1: return 0b11111001; //1 case 2: return 0b10100100; //2 case 3: return 0b10110000; //3 case 4: return 0b10011001; //4 case 5: return 0b10010010; //5 case 6: return 0b10000010; //6 case 7: return 0b11111000; //7 case 8: return 0b10000000; //8 case 9: return 0b10010000; //9 case 11: //kropka return 0b01111111; } return 0; } /******************************************************************/
|
|
| Back to top |
|
 |
tadzik85 Poziom 22

Joined: 28 Feb 2007 Posts: 1637 Location: Bydgoszcz
|
#17
04 Dec 2011 12:57 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
Brak nop przez sprawdzeniem stanu pinu. Nie musisz powielać zerowania bitów kolumn.
|
|
| Back to top |
|
 |
doles Poziom 15

Joined: 05 Jun 2007 Posts: 245 Location: Grudziądz
|
#18
04 Dec 2011 13:11 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
OK, wywaliłem to powielanie i zrobiłem po prostu if i potem else if. Co masz na myśli brak nop ? asm("nop"); ?
PORTA = 0b01111111; if((PINA & 0x08)==0) PORTC = wyswietlacz(1); else if((PINA & 0x04)==0) PORTC = wyswietlacz(2); else if((PINA & 0x02)==0) PORTC = wyswietlacz(3); PORTA = 0b10111111; asm("nop"); if((PINA & 0x08)==0) PORTC = wyswietlacz(4);
Niestety jest to samo, 4 i 1 jest odwrócone...
|
|
| Back to top |
|
 |
tadzik85 Poziom 22

Joined: 28 Feb 2007 Posts: 1637 Location: Bydgoszcz
|
#19
04 Dec 2011 13:17 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
CO znaczy odwrócone?
|
|
| Back to top |
|
 |
doles Poziom 15

Joined: 05 Jun 2007 Posts: 245 Location: Grudziądz
|
#20
04 Dec 2011 13:19 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
Gdy wciskam klawisz w kolumnie 1 i wierszu 2 to zamiast cyfry 4 wyświetla mi się cyfra 1 tak samo przycisk w kolumnie 1 i wierszu 1 - 4 zamiast cyfry 1. Klawiatura ma 3 kolumny i 4 wiersze, z przypisanymi cyframi jak w klawiaturze telefonu.
EDIT: po dodaniu wszystkich cyferek...
PORTA = 0b01111111; if((PINA & 0x08)==0) PORTC = wyswietlacz(1); //wyswietla sie cyfra 4... else if((PINA & 0x04)==0) PORTC = wyswietlacz(2); else if((PINA & 0x02)==0) PORTC = wyswietlacz(3); PORTA = 0b10111111; if((PINA & 0x08)==0) PORTC = wyswietlacz(4); // wyswietla sie cyfra 7... else if((PINA & 0x04)==0) PORTC = wyswietlacz(5); else if((PINA & 0x02)==0) PORTC = wyswietlacz(6); PORTA = 0b11011111; if((PINA & 0x08)==0) PORTC = wyswietlacz(7); // wyswietla sie cyfra 1... else if((PINA & 0x04)==0) PORTC = wyswietlacz(8); else if((PINA & 0x02)==0) PORTC = wyswietlacz(9);
|
|
| Back to top |
|
 |
tadzik85 Poziom 22

Joined: 28 Feb 2007 Posts: 1637 Location: Bydgoszcz
|
#21
04 Dec 2011 13:31 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
A gdzie nopy po zerowaniu kolumn?
|
|
| Back to top |
|
 |
doles Poziom 15

Joined: 05 Jun 2007 Posts: 245 Location: Grudziądz
|
#22
04 Dec 2011 13:36 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
Dziękuje Ci bardzo... teraz działa :) nie mogę niestety kliknąć pomógł bo nie ma opcji? Powiedz mi tylko dlaczego akurat wstawka asemblerowska nop po zerowaniu kolumn pomogła ? Nie rozumiem akurat jej użycia do wyeliminowania tego błędu
|
|
| Back to top |
|
 |
Brutus_gsm Poziom 18

Joined: 01 May 2006 Posts: 479 Location: Łódź
|
#23
04 Dec 2011 13:49 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
Po wpisaniu jakiejś wartości do DDRx lub PORTx stan PINx zmieni się dopiero z opóźnieniem jednej instrukcji. Jest to spowodowane synchronizatorem IO w AVR. Czyli między ustawianiem np. PORTA i odczytywaniem PINA musi pojawić się jakaś instrukcja. Zazwyczaj stosuje się assemblerowy NOP, bo on nic nie robi, ale trwa jeden cykl rozkazowy.
Polecam książkę do nauki C pana Tomasza z forum ;)
|
|
| Back to top |
|
 |
doles Poziom 15

Joined: 05 Jun 2007 Posts: 245 Location: Grudziądz
|
#24
04 Dec 2011 14:17 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
Dzięki wielkie ! :D Będę musiał poważnie pomyśleć nad literaturą...
|
|
| Back to top |
|
 |
dondu Poziom 23

Joined: 18 Nov 2008 Posts: 3853
|
|
| Back to top |
|
 |
doles Poziom 15

Joined: 05 Jun 2007 Posts: 245 Location: Grudziądz
|
#26
04 Dec 2011 15:30 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
Właśnie nie wiem, którą książke wybrać, autora Tomasza Francuza czy Mirosława Kardasia...
|
|
| Back to top |
|
 |
dondu Poziom 23

Joined: 18 Nov 2008 Posts: 3853
|
#27
04 Dec 2011 15:31 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
Poszukaj na forum, były dyskusje na temat obu książek.
|
|
| Back to top |
|
 |
doles Poziom 15

Joined: 05 Jun 2007 Posts: 245 Location: Grudziądz
|
#28
04 Dec 2011 15:33 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
OK :) W wolnej chwili poszukam, narazie piszę pewien program. Dzięki za pomoc :)
|
|
| Back to top |
|
 |
Google

|
#
04 Dec 2011 15:33 |
|
|
|
|
|
| Back to top |
|
 |
janbernat Poziom 23

Joined: 22 Oct 2008 Posts: 3918 Location: Warszawa
|
#29
06 Feb 2012 23:52 Re: [C] klawiatura matrycowa 3x4 -jaki program? |
|
|
|
Odkopię stary temat.
Tak to wygląda po wciśnięciu dwóch przycisków.
http://obrazki.elektroda.pl/3144685000_1328564848.png
Jedno wyjście w stanie wysokim- a drugie- niskim.
Przez 5-50ms ustala się w stanie pośrednim- tak ze 2.5V.
Prąd wypływa z jednego a wpływa do drugiego.
Jaki to jest prąd- może uda mi się zmierzyć.
Ale nie jest to coś takie ładne.
|
|
| Back to top |
|
 |