-         

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 13

Thema: loop problem

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    15.01.2006
    Beiträge
    9

    loop problem

    Anzeige

    Hi
    leider gibt es noch ein Problem bei einem meiner ersten Programme. Sobald der Taster mit Masse verbunden ist, sollte das Programm die Loop-Schleife verlassen und die LED sollte ausgehen.. Dies tut es aber leider net. Der Wichtige teil sieht wie folgt aus.


    Code:
       
       Starter = 1
       Led = 1
       Do
       If Starter = 0 Then
       A = 1
       Else
       Waitms 1
       End If
       Loop Until A = 1
       Led = 0
    Vielen Dank schon einmal

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,
    kannst Du noch etwas mehr vom Code reinstellen,
    zB. die Stelle an der A einen anderen Wert als 1 bekommt.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    15.01.2006
    Beiträge
    9
    Code:
    Dim A As Byte
     A = 0
    
    Starter = 1
       Led = 1
       Do
       If Starter = 0 Then
       A = 1
       Else
       Waitms 1
       End If
       Loop Until A = 1
       Led = 0

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Naja, hilft uns noch nicht recht weiter,
    Wer setzt Starter auf 0 ?
    Ist das ein Eingangspin, welches, wie ist es verkabelt ?

    Was geht jetzt genau nicht, wenn Du den Taster drückst, geht die LED nicht aus, dann bitte mit meiner ersten Fragen weiter machen

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.12.2004
    Alter
    64
    Beiträge
    277
    .... und wie sieht die Konfiguation der Ports aus, wie der Alias für Starter usw...

    Pinnoccio, lass' Dir doch nicht alles aus der Nase ziehen, so hochgeheim oder so lang kann Dein Programm doch bei dem Wissensstand noch nicht sein .

    Grüße
    Henrik

  6. #6
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.02.2006
    Ort
    München
    Beiträge
    111
    Am Besten einfach das komplette Programm hier reinstellen, dann werden Sie geholfen.

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    15.01.2006
    Beiträge
    9
    Code:
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000
    $baud = 9600
    
    
    
       Dim A As Byte
       Config Porta.0 = Output
       Motorl Alias Porta.0
       Config Porta.1 = Output
       Motorr Alias Porta. 1
       Config Porta.2 = Input
       Starter Alias Porta.2
       Config Porta.6 = Output
       Led Alias Porta.6
    
       A = 0
       Starter = 1
       Led = 1
       Motorl = 0
       Motorr = 0
       Do
       If Starter = 0 Then
       A = 1
       Else
       Waitms 1
       End If
       Loop Until A = 1
       Led = 0
       Motorl = 1
       Motorr = 1
       Wait 5
       Motorl = 0
       Motorr = 0
    mehr wars noch nicht

  8. #8
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    > Starter Alias Porta.2 <

    Zum einlesen brauchst du :

    Starter Alias Pina.2
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  9. #9
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.07.2005
    Beiträge
    569
    hmmm .. sehr wirrer Programmierstil *mal anmerk*

    so sollte es besser lesbar sein (vor allem, was Schleifen etc angeht):
    Code:
    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000
    $baud = 9600
    
    	Dim A As Byte
    	Config Porta.0 = Output
    	Motorl Alias Porta.0
    	Config Porta.1 = Output
    	Motorr Alias Porta. 1
    	Config Porta.2 = Input
    	Starter Alias Porta.2
    	Config Porta.6 = Output
    	Led Alias Porta.6
    
    	A = 0
    	Starter = 1
    	Led = 1
    	Motorl = 0
    	Motorr = 0
    	Do
    		If Starter = 0 Then
    			A = 1
    		Else
    			Waitms 1
    		End If
    	Loop Until A = 1
    
    	Led = 0
    	Motorl = 1
    	Motorr = 1
    	Wait 5
    	Motorl = 0
    	Motorr = 0
    Ach ja, ich würde mal sagen, da fehlt irgendwie etwas ... und einiges ist auch nicht so ganz richtig ...

    z.B. werden Eingänge immer mit PIN und nicht mit PORT ausgelesen
    des weiteren scheint mir irgendwas am Ende zu fehlen ...

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    15.01.2006
    Beiträge
    9
    Hallo noch mal,
    vielen dank für die ganzen Antworten, mittlerweile läuft das Programm auch, aber noch eine andere Frage:

    $regfile = "m32def.dat"
    $framesize = 32
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000
    $baud = 9600

    Config Porta.0 = Output
    Motorlv Alias Porta.0
    Config Porta.1 = Output
    Motorrv Alias Porta.1
    Config Porta.2 = Input
    Bumpervorne Alias Porta.2
    Config Porta.3 = Input
    Bumperhinten Alias Porta.3
    Config Porta.4 = Output
    Led Alias Porta.4
    Config Porta.5 = Output
    Summer Alias Porta.5

    Config Int0 = Low Level
    Enable Interrupts
    Enable Int0
    On Int0 Bums

    Portd.2 = 1
    Porta.2 = 1
    Porta.3 = 1

    Do
    Motorlv = 1
    Motorrv = 1
    Led = 0
    Waitms 10
    Loop
    End


    Bums:
    Motorlv = 0
    Motorrv = 0

    Do
    If Bumpervorne = 0 Then
    Led = 1
    End If
    Loop Until Led = 1
    In diesem Programm ist in dem letzten Teil, ab Bums: ein Problem.
    Der Interruptteil wird erkannt und die Motoren werden ausgeschaltet. Leider wird die If-Schleife aber ignoriert. Der Schalter aber direkt an den Port angeschlossen, und der Int-Pin über eine kleine Diode.

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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