Hallo,
ich habe einiges Probiert und auch vieles davon früher/später hinbekommen. Jetzt habe ich mir eben mal ein Taster mit 2 Drähtchen zusammen gebastelt, den ich als Test-Sensor erstmal verwenden wollte. Den habe ich an meiner RN-Control zwischen +5V und Port A.2 (also den 3.) geklemmt. Mein ganz simples Motoren Test Progg soll anhalten bzw. den Motor anders herum drehen, sobald dieser Port durch den Taster auf High gesetzt wird.
Das tut es leider nicht. Programmier-technisch ist das auch noch nicht so schön gelöst, noch ist diese Prüfung in ner While Endlos Schleife, wodurch alle anderen Taster (die oboard) in der Zeit blockiert sind.
Vllt kann mir ja jemand helfen, hier erstmal der Code:
Code:
$crystal = 16000000
$baud = 9600
$regfile = "m32def.dat"
Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung
Config Pina.2 = Input 'Testsensor
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1 'Pullup Widerstand ein
Porta.2 = 1
Config Portc = Output
Config Portb = Output
Dim Taster As Word
Dim Sensor As Word
Dim I As Integer
Dim N As Integer
Dim B As Boolean
Ddrc = &B00000001
Do
Start Adc
Taster = Getadc(7)
Sensor = Getadc(2)
If Taster < 1010 Then
Select Case Taster
Case 410 To 450 'Taste 1: Motor 1 Dreht 1
Sound Portd.7 , 100 , 200
Ddrc = &B10000000
Do While Not B 'Dauernd prüfen
If Sensor < 1000 Then
Ddrc = &B00000000 'Wenn Hindernis, dann Rückwärts bzw. aus!
Exit Do
End If
Loop
Case 340 To 380 'Taste 2: Motor 1 Dreht 2
'Sound Portd.7 , 100 , 400
Ddrc = &B01000000
Case 265 To 305 'Taste 3: Motor 2 Dreht 1
'Sound Portd.7 , 100 , 200
Ddrb = &B00000010
Case 180 To 220 'Taste 4: Motor 2 Dreht 2
'Sound Portd.7 , 100 , 400
Ddrb = &B00000001
Case 80 To 150 'Taste 5: Motoren Stop
'Achtung, das Funzut auch noch nicht ganz, es geht nur der erste Motor aus!!
Ddrc = &B00000000 'Motor 1
Ddrb = &B00000000 'Motor 2
End Select
End If
Loop
End
Danke!
Lesezeichen