Guten Tag!

Ich experimentiere zur Zeit bissl mit meinem RN-Control 1.4 rum. Ich habe einen Taster zwischen PortA.1 und Masse geklemmt und den PortA.1 auf High gesetzt. Wenn ich jetzt drücke wird die Spannung an diesem Pin runter gezogen, was ich natürlich messen kann...

Das Problem ist jetzt folgendes: Wenn ich den Taster abfrage geht das so nicht. Wenn ich ihn allerdings mit selbem Code an PortA.3 anschließe gehts!!! Aber im Basic Code steht nirgends was von dem Pin 3.

Warum ist das so? Hier der Code:
Code:
$crystal = 16000000
$baud = 9600
$regfile = "m32def.dat"

Declare Sub Fahren()
Declare Sub Halt()




Config Adc = Single , Prescaler = Auto                      'Für Tastenabfrage und Spannungsmessung


Config Pina.7 = Input                                       'Für Tastenabfrage
Porta.7 = 1                                                 'Pullup Widerstand ein

Config Pina.1 = Input                                       'Für Sensorabfrage
Porta.7 = 1

Config Portc = Output
Config Portb = Output


Dim Taster As Word


Ddrc = &B00000001                                           'Zu Beginn eine LED an

Do


   Start Adc
   Taster = Getadc(7)


   If Taster < 1010 Then

      Select Case Taster

         Case 410 To 450                                    'Taste 1: Fahren bis Hindernis

            'Call Lcd()


         Case 340 To 380                                    'Taste 2:

            Call Fahren()

         'Case 265 To 305                                    'Taste 3:



         'Case 180 To 220                                    'Taste 4:



         Case 80 To 150                                     'Taste 5: Halten!

            Call Halt()



      End Select

   End If

Loop

End

'#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#

Sub Fahren()
   Dim Sensor As Word

   Config Pina.1 = Input                                    'Port als Input
   Porta.1 = 1                                              'Port hoch setzen

   Sensor = Getadc(1)                                       'Sensor 1 aktivieren




   Portc.7 = 1                                              'Motor 1 Vorwärts
   Portb.1 = 1                                              'Motor 2 Vorwärts

   Do                                                       'Endlosschleife
         If Sensor < 1010 Then                              'Wenn Port runter gesetzt wird (Low)


                     Portc.6 = 1                            'Motor 1 Rückwärts
                     Portc.7 = 0

                     Portb.0 = 1                            'Motor 2 Rückwärts
                     Portb.1 = 0

                     Print "Hindernis, setze zurueck!"

                     Waitms 100

                     'Rechtsdrehung
                     Portc.7 = 1                            'Motor 1 Vorwärts
                     Portc.6 = 0

                     Waitms 50

                     'Geradeaus
                     Portb.1 = 1                            'Motor 2 Vorwärts
                     Portb.0 = 0


                     Print "Setze Fahrt fort!"

         End If
   Loop

End Sub


'#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#

Sub Halt()

   Stop Sub Fahren()

   Portc = 0                                                'Motor 1 Stop
   Portb = 0                                                'Motor 2 Stop

   Sound Portd.7 , 100 , 200                                'BEEP

End Sub


'#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#
Vielen Dank schonmal im Voraus und noch ein schönes WE!



PS: Direkt noch eine 2. Frage: Ich habe einen Pollin US Sensor. Kann ich die LED Spannung einfach an einen Pin von Port A hängen? Eigentlich nicht, da ich dann ja zwischen Masse und dem LED-Bein Messe, was dann den bereich des Einganes übersteigt. Sehe ich richtig, oder? Besser mit Spannungsteiler oder Optokoppler arbeiten?