- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 10

Thema: "Input" scheint nur beim ersten mal richtig erkannt zu werden?!

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #4
    Erfahrener Benutzer Roboter Genie Avatar von HeXPloreR
    Registriert seit
    08.07.2008
    Ort
    Soltau - Niedersachsen
    Alter
    46
    Beiträge
    1.369
    Code:
    $regfile = "m32def.dat"
     $framesize = 32
     $swstack = 32
     $hwstack = 32
     $crystal = 16000000
    
     $baud = 9600
    
     Config Timer1 = Timer , Prescale = 8                       'Konfiguriere Timer0
     Disable Timer1                                             'schalte Den Timer0 Overflow -interrupt Ein
     On Timer1 Schritt
     Enable Interrupts
    
    
     Config Pind.5 = Output                                     'LEDs
     Config Pind.6 = Output
     Led1 Alias Portd.5
     Led2 Alias Portd.6
     Config Pina.0 = Output                                     'Motorx pins
     Config Pina.1 = Output
     Config Pina.2 = Output
     Config Pina.3 = Output
     X1 Alias Porta.0
     X2 Alias Porta.1
     X3 Alias Porta.2
     X4 Alias Porta.3
     Dim Empfangen As String * 8
     Dim Modus As Byte
     Modus=0
    
     Dim Befehlsarray(20) As Integer
     Dim Befehlsindex as Integer
     Dim i as Integer
    
     Dim Schrittarray(8) As Byte
    
     Schrittarray(1).1 = 0                                      '##### Tabelle mit dem Steuermuster #####
     Schrittarray(1).2 = 1
     Schrittarray(1).3 = 0
     Schrittarray(1).4 = 1
    
     Schrittarray(2).1 = 0
     Schrittarray(2).2 = 1
     Schrittarray(2).3 = 0
     Schrittarray(2).4 = 0
    
     Schrittarray(3).1 = 0
     Schrittarray(3).2 = 1
     Schrittarray(3).3 = 1
     Schrittarray(3).4 = 0
    
     Schrittarray(4).1 = 0
     Schrittarray(4).2 = 0
     Schrittarray(4).3 = 1
     Schrittarray(4).4 = 0
    
     Schrittarray(5).1 = 1
     Schrittarray(5).2 = 0
     Schrittarray(5).3 = 1
     Schrittarray(5).4 = 0
    
     Schrittarray(6).1 = 1
     Schrittarray(6).2 = 0
     Schrittarray(6).3 = 0
     Schrittarray(6).4 = 0
    
     Schrittarray(7).1 = 1
     Schrittarray(7).2 = 0
     Schrittarray(7).3 = 0
     Schrittarray(7).4 = 1
    
     Schrittarray(8).1 = 0
     Schrittarray(8).2 = 0
     Schrittarray(8).3 = 0
     Schrittarray(8).4 = 1
    
     Print "gestartet"
    
     Declare Sub run
    
      Do
         Input Empfangen
         If Modus=1 Then 'array befüllen
            If Empfangen<> "-32768" Then 'Befehl, das array fertig
                    print "anders als 68"
                    Incr Befehlsindex
                    Befehlsarray(Befehlsindex)=Val(Empfangen)
            Else
                    Modus=2
                    i=0
                    while i< Befehlsindex
                            incr i
                            Print Befehlsarray(i)
                    Wend
            End If
         ElseIf Modus=2 Then
            If Empfangen="-32767" Then 'Befehl, Programm starten
               gosub run
            End If
         ElseIf Modus=0 Then
            If Empfangen="-32766" Then 'Befehl, das array zu befüllen
                    Modus=1
                    Befehlsindex=0
                    print "66 erkannt"
            End If
         End If
    
      Loop
    
     sub run
            print "run"
     End sub
    
     Schritt:
             print "schritt"
     Return
    Timer ist aus(rot makiert) und macht anscheinend mal abgesehen davon das er ja aus ist - nichts; outputs nicht richtig konfiguriert (rot markiert) , die Pins (sollten Ports sein) für den Motor habe ich nur nicht rot markiert (orange) weil ich es auch schon so laufen gesehen habe. Warum weiß der Oberallgeier
    Hat es guten Grund warum Du mit integer im minus arbeitest? Man könnte ja auch einfach das Ding als byte oder word dimensionieren und dann z.B. "66" direkt eingeben und senden.
    Welche Aufgabe sollen die ganzen Schrittarrays haben? Bze wie und wo wird das dann benutzt?
    Die LED' sind unbenutzt.

    Die while - wend Schleife würde ich mir nochmal überdenken.

    END Befehl?

    Allerdings muss ich zugeben viel sagt mir das Programm nicht. Das Programm scheint unnötig kompliziert gemacht zu sein. Warum lässt man die if's anschliessend ausführen obwohl das vorher garnicht die Bedingung war und sie quasi erst in einer anderen if-Bedingung geändert wird und dann im zweiten durchlauf auf die andere if-Bedingung passt, wobei man wieder prüft ob es ungleich "68" ist? Das kann man sicher anders und leserlicher schreiben.

    Sorry, aber ich bin auch Anfänger.

    Sag mal was das genau werden soll?
    Geändert von HeXPloreR (06.06.2013 um 16:01 Uhr)

Ähnliche Themen

  1. Frankreich : Die ersten "Médailles de l’innovation" des CNRS
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 23.05.2011, 11:10
  2. "PCF 8574 P" Problem bei Verwendung als Input
    Von fitec im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 03.03.2009, 21:40
  3. INPUT- Befehl "reagiert" nicht?
    Von Diron im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 9
    Letzter Beitrag: 01.03.2009, 11:30
  4. "Quad 2 Input 7400" vs "Hex 7404 Inverter&quo
    Von walddax im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 06.12.2005, 11:29
  5. IO-Pins lassen sich nicht richtig mit "bsf"/"
    Von keiang im Forum PIC Controller
    Antworten: 3
    Letzter Beitrag: 21.07.2005, 19:12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test