Wie gesagt ich bin halt noch am Anfang und probiere noch viel aus, auch wegen der Befehle und so. Ich habe das Programm in der Sub geändert:

Do
Key = Getatkbd()
Loop Until Key = 113

Wie ich schon sagte funktioniert der Sprung aus der Sub in das Hauptprogramm jetzt schon bei einem kurzen Tastenanschlag. Anders herum leider noch nicht. Bei einem Sprung vom Hauptprogramm in die Sub, muss ich die Taste ca ne Sekunde drücken, bevor etwas passiert. Und so riesig ist der Code ja nicht das der Chip ne Sekunde braucht um durchzulaufen.

Das Programm lasse ich direkt auf dem Microcontroller laufen.
Verwendete Hardware: Atmel32, PC-Tastatur, LCD-Display


Geänderter Code:
Code:
$regfile = "m32def.dat"
$crystal = 16000000

Config Keyboard = Pinb.1 , Data = Pinb.2 , Keydata = Keydata

Dim Key As Byte

Declare Sub Test() As Byte


Config Portb.0 = Output
Led Alias Portb.0

'LCD Config
Config Lcdpin = Pin , Rs = Portd.0 , E = Portd.1 , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5
Config Lcd = 20 * 2
Config Lcdbus = 4
Initlcd
Cls
Cursor On


Main:

Do

      Led = 1
      Locate 1 , 1
      Lcd "Main"

Key = Getatkbd()
   If Key = 119 Then                                        'w
      Call Test()
   End If

Loop

End


Sub Test()                                                  

      Led = 0
      Locate 1 , 1
      Lcd "test"
Do
   Key = Getatkbd()
   Loop Until Key = 113

End Sub



'scan code übersetzungstabelle

Keydata:
'normal keys lower case
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , &H5E , 0
Data 0 , 0 , 0 , 0 , 0 , 113 , 49 , 0 , 0 , 0 , 122 , 115 , 97 , 119 , 50 , 0
Data 0 , 99 , 120 , 100 , 101 , 52 , 51 , 0 , 0 , 32 , 118 , 102 , 116 , 114 , 53 , 0
Data 0 , 110 , 98 , 104 , 103 , 121 , 54 , 7 , 8 , 44 , 109 , 106 , 117 , 55 , 56 , 0
Data 0 , 44 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 45 , 108 , 48 , 112 , 43 , 0
Data 0 , 0 , 0 , 0 , 0 , 92 , 0 , 0 , 0 , 0 , 13 , 0 , 0 , 92 , 0 , 0
Data 0 , 60 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0
Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0

'shifted keys UPPER case
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
Data 0 , 0 , 0 , 0 , 0 , 81 , 33 , 0 , 0 , 0 , 90 , 83 , 65 , 87 , 34 , 0
Data 0 , 67 , 88 , 68 , 69 , 0 , 35 , 0 , 0 , 32 , 86 , 70 , 84 , 82 , 37 , 0
Data 0 , 78 , 66 , 72 , 71 , 89 , 38 , 0 , 0 , 76 , 77 , 74 , 85 , 47 , 40 , 0
Data 0 , 59 , 75 , 73 , 79 , 61 , 41 , 0 , 0 , 58 , 95 , 76 , 48 , 80 , 63 , 0
Data 0 , 0 , 0 , 0 , 0 , 96 , 0 , 0 , 0 , 0 , 13 , 94 , 0 , 42 , 0 , 0
Data 0 , 62 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 0
Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
Ich freue mich über jede art von Hilfe!

MFG SlimJim1988