mam klawiaturke x-y i próbuję z niej z czytywać stan wszystko wygląda nawet ok z jednym małym szkopułem klawisze 2 i 3 dają ta sama wartość
Kod: Zaznacz cały
$regfile = "m32def.dat"
$crystal = 3686400
$hwstack = 128
$swstack = 128
$framesize = 64
Dim Klawisz As Byte , A As Byte
Czerwona Alias Portc.7
Masa Alias Portc.5
Elektromagnes Alias Portc.4
Kolumna3 Alias Portd.7
Kolumna1 Alias Portd.5
Kolumna2 Alias Portd.2
Wiersz1 Alias Pind.1
Wiersz2 Alias Pind.3
Wiersz3 Alias Pind.4
Wiersz4 Alias Pind.6
Config Pind.7 = Output
Config Pind.5 = Output
Config Pind.2 = Output
Config Pind.1 = Input
Config Pind.3 = Input
Config Pind.4 = Input
Config Pind.6 = Input
Config Pinc.5 = Output
Config Pinc.7 = Output
Portd = &B11111110
Set Masa
Wait 1
Reset Masa
Do
Klawisz = 16
Set Kolumna1
If Wiersz1 = 1 Then
   Klawisz = 1
Elseif Wiersz2 = 1 Then
       Klawisz = 4
Elseif Wiersz3 = 1 Then
       Klawisz = 7
Elseif Wiersz4 = 1 Then
       Klawisz = 10
Else
End If
Reset Kolumna1
Set Kolumna2
If Wiersz1 = 1 Then
   Klawisz = 2
Elseif Wiersz2 = 1 Then
       Klawisz = 5
Elseif Wiersz3 = 1 Then
       Klawisz = 8
Elseif Wiersz4 = 1 Then
       Klawisz = 0
Else
End If
Reset Kolumna2
Set Kolumna3
If Wiersz1 = 1 Then
   Klawisz = 3
Elseif Wiersz2 = 1 Then
       Klawisz = 6
Elseif Wiersz3 = 1 Then
       Klawisz = 9
Elseif Wiersz4 = 1 Then
       Klawisz = 11
Else
End If
Reset Kolumna3
If Klawisz <> 16 Then
For A = 1 To Klawisz
   Set Masa
   Waitms 500
   Reset Masa
   Waitms 500
Next A
End If
Loopna PCB linie podpięte do "wierszy" są podciągnięte 10k do masy
dodam tylko ze jak sprawdzam każdą kolumnę z osobna wszystko jest ok
 





 Pytałem , czy klawisze 2 i 3 odczytuje jako 2 , czy jako 3
 Pytałem , czy klawisze 2 i 3 odczytuje jako 2 , czy jako 3  ma wytrzymac ciezkie warunki
  ma wytrzymac ciezkie warunki  
