Hallo,
hier erstmal den Code, den ich bisher habe:
Ist eigentlich der Beispielcode nur ein wenig verändert.Code:' -------------- RN-Control übliche _____________________ Declare Function Tastenabfrage() As Byte $regfile = "m32def.dat" $framesize = 32 $swstack = 32 $hwstack = 64 $crystal = 16000000 'Quarzfrequenz $baud = 9600 Config Scl = Portc.0 'Ports fuer IIC-Bus Config Sda = Portc.1 Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung Config Pina.7 = Input 'Für Tastenabfrage Porta.7 = 1 'Pullup Widerstand ein Dim Taste As Byte Dim Ton As Integer I2cinit Start Adc ' -------------- Ende RN-Control übliche _____________________ Config Pina.0 = Output Stepper_enable Alias Porta.0 Config Pina.1 = Output Stepper_richtung Alias Porta.1 Config Pina.2 = Output Stepper_takt Alias Porta.2 Dim I As Integer Stepper_enable = 1 Do Taste = Tastenabfrage() If Taste <> 0 Then Select Case Taste Case 1 'Schaltet Motorstrom ein Stepper_enable = 1 Case 2 Toggle Stepper_richtung For I = 1 To 400 Stepper_takt = 0 : Waitus 1 : Stepper_takt = 1 'Bewegt Motor genau 400 Halbschritte (1 Umdrehung bei den meisten Motoren) Waitms 30 Next Case 3 For I = 1 To 400 Stepper_takt = 0 : Waitus 1 : Stepper_takt = 1 Waitms 5 Next Case 4 Toggle Stepper_richtung Case 5 'Schaltet Motor aus Stepper_enable = 0 End Select Sound Portd.7 , 400 , 500 'BEEP End If Waitms 100 Loop End ' Diese Unterfunktion fragt die Tastatur am analogen Port ab ' Sollte beim betätigen einer Taste kein Quittungston kommen, dann ' muss die die Tastenabfrage (Select Case Anweisung in Funktion ) ' an ihr Board angepaßt werden. Widerstandstoleranzen sorgen in ' Einzelfällen manchmal dafür das die Werte etwas anders ausfallen ' Am besten dann den WS wert mit Print für jede Taste ausgeben lassen Function Tastenabfrage() As Byte Local Ws As Word Tastenabfrage = 0 Ton = 600 Ws = Getadc(7) ' Print "ws= " ; Ws If Ws < 1010 Then Select Case Ws Case 400 To 455 Tastenabfrage = 1 Ton = 550 Case 335 To 380 Tastenabfrage = 2 Ton = 500 Case 250 To 305 Tastenabfrage = 3 Ton = 450 Case 180 To 220 Tastenabfrage = 4 Ton = 400 Case 100 To 130 Tastenabfrage = 5 Ton = 350 End Select Sound Portd.7 , 400 , Ton 'BEEP End If End Function
Was ich nun erreichen will:
1. Die Tastenabfrage soll durch anlegen an Masse an z.B. PortA.3 - PortA.7 geschehen. Pullup ist zwar für die Taster schon eigeschaltet aber ich brächte den ja für die Ports zum abgefragt oder?
2. Würde gerne, dass sie der Motor durch einen Taster in eine fest definierte Richtung dreht. Also z.b. PortA.3=0 soll sich der Motor linksrum drehen und PortA.4=0 rechtsrum. Mit "Toggle Stepper_richtung" komme ich nicht weiter.
3. Solange sich z.b. PortA.4 im Zustand 0 befindet soll sich der Motor drehen. Wäre wichtig, um den Motor manuell noch ein wenig mit einer voreingestellten Geschwindikkeit bewegen zu können.
4. Wie verbinde ich, dass z.b. bei Signal der Motor dreht und dabei aber eine Led leuchtet? Quasi mehrere Aktionen miteinander verbinden.
Vielen Dank schonmal!
Edit: ganz Vergessen: Betrieben wird das ganze im RN-Control in verbindung mit RN-Stepp297







Zitieren

Lesezeichen