Hallo,

Mein Programm sieht so aus (da sind wahrscheinlich viele Fehler):


Code:
Config Portc = Output
Config Pina.7 = Input
Porta.7 = 1

Config Adc = Single , Prescaler = Auto

Start Adc
Dim W As Word , Channel As Byte
Channel = 0

Do
  If W = Getadc(7) Then
  Portc = &B00000000

Else
  Portc = &B11111111
End If
Loop
End
Das ist mein erstes.
Mein zweites lautet:


Code:
Config Portc = Output

Config Pina.7 = Input
Porta.7 = 1

Declare Sub T1()
Declare Sub T2()
Declare Sub T3()
Declare Sub T4()
Declare Function Tastenabfrage() As Byte

Config Adc = Single , Prescaler = Auto
Dim Taste As Byte


Start:

Portc = &B11111111

Do

 Taste = Tastenabfrage()
   If Taste <> 0 Then

      Select Case Taste

         Case 1
            Call T1
         Case 2
            Call T2
         Case 3
            Call T3
         Case 4
            Call T4

      End Select


   Else
   End If


Sub T1()

...

End Sub


Sub T2()

...

End Sub

Sub T3()

...

End Sub


Sub T4()

...

End Sub

Loop


Function Tastenabfrage() As Byte
Local Ws As Word

   Tastenabfrage = 0

   Start Adc
   Ws = Getadc(7)
   If Ws < 500 Then
      Select Case Ws
         Case 400 To 450
            Tastenabfrage = 1

         Case 330 To 380
            Tastenabfrage = 2

         Case 260 To 305
            Tastenabfrage = 3

         Case 180 To 220
            Tastenabfrage = 4
      End Select


   End If

End Function
Für das Zweite Programm habe ich einen Teil der Demo von den Tastern benutzt, um die einzelnen Widerstandsbereiche festzulegen (Das Poti habe ich am Porta.7 und Porta.6 angeschlossen). Diese sind wahrscheinlich falsch, doch ich weiß nicht wie sie aussehen müssen. Mein Poti besitzt einen Widerstand von 420kOhm.

Gruß, Palmer