IF mit Bascom

Marcel123

Neues Mitglied
03. Apr. 2009
2
0
0
Sprachen
Hi, ich wollte eine Steuerung programmieren bei bei dem Var_1 auf 1 gesetzt wird, wenn PortB.0 = 1, PortB.3 = 1 PortB.4 = 0 und Var_2 = 1

mein versuch war:

Code:
if PortB.0 = 1
and PortB.3 = 1
and PortB.4 = 0
and Var_2 = 1
then Var_1 = 1
else
Var_1 = 0
endif

so funktioniert das aber nicht. kann mir jemand helfen wie ich das korrekt programmiere?

danke schonmal im voraus
 
Hallo Marcel123!

Herzlich Willkommen im AVR-Praxis Forum! :ciao:


In der Tat, so funktioniert das mit IF und Then nicht..... ein AVR ist ja auch keine SPS. ;)
Nun ja... in einer SPS könnte auch ein AVR arbeiten, aber das wäre ein anderes Thema.


Dein Ansatz ist aber gar nicht sooo verkehrt!

Du könntest es aber z.B. so schreiben:
If PortB.0 = 1 And PortB.3 = 1 And PortB.4 = 0 And Var_2 = 1 Then
Var_1 = 1
Else
Var_1 = 0
End If

Also den Zeilenumbruch erst nach dem "Then" machen.
Das würde funktionieren.

Ob das dann später im Programm sinnvoll ist, es auf diese Weise zu lösen, musst du aber selbst entscheiden. ;)

Wenn du ein paar Zeilen später im Code z.B. diese Bedingung programmierst:
If PortB.0 = 0 And PortB.3 = 1 And PortB.4 = 0 And Var_2 = 1 Then
Var_1 = 1
Else
Var_1 = 0
End If


bekommst du später Probleme......

Die erste Bedingung lässt die Variable "Var_1 = 0" sein und die zweite Bedingung würde "Var_1 = 1" ausgeben.


Probiere es aber einfach mal aus.....

Ich wünsche dir auf alle Fälle viel Spaß mit den AVRs und BASCOM!

Gruß,
Cassio
 
ahhh ok vielen dank dafür. ich komm halt aus dem S7 bereich (wie schon gemerkt :D)
nächste woche kommen meine atmels dann probier ich das - *freu* - mit dem simulator komm ich net zurecht.
mfg Marcel
 
Hallo zusammen,

ich bin zwar mehr in Assembler unterwegs aber ich hab da auch noch was ...

Se war doch mal was im Gespräch das BASCOM auch keine verschachtelten
Bedingungen verstehen kann. War das jetzt vom Markus, Knickohr(Thomas), ...
oder von wem war das ...

Nur mal so als vorab-Tip gegen langes suchen bei Fehlerfällen ...

Gruß
Dino
 
Hi Dino!

Stimmt schon!
Das hat Markus mal zu bedenken gegeben.
Ich persönlich habe zwar mit dem Verschachteln von den IF-Befehlen noch keine Probleme gehabt, aber wenn Markus das sagt wird da mit Sicherheit etwas dran sein!

Markus meinte das aber so ;) :

Code:
[COLOR="Blue"]If PortB.0 = 1 Then
   If PortB.3 = 1 Then
       If PortB.4 = 0 Then
          If Var_2 = 1 Then
          Var_1 = 1
          Else
          Var_1 = 0
          End If
       Else
       End If
    Else
    End If
Else
End If
[/COLOR]


Gruß,
Cassio
 
Hi all,

habe die letzten Tage / Wochen etwas mit den Verschachtelungen probiert und es scheint mir, dass vor allem in der neuen BASCOM Version hier einige änderungen eingeflossen sind.

Ich hatte vor gut einem Jahr (oder war es noch länger her???) mal eine Mail an MCS geschrieben. Auf die haben sie bis heute nicht geantwortet aber ich stelle eine Veränderung im Handling von BASCOM speziell bei den Verschachtelten Bedinungen fest. Also müssen sie etwas gemacht haben.

Mein Problem was ich früher hatte war im Bereich

If bla=nix AND blabla=nixnix AND blablabla > ueberhaupt Then
mache irgendwas
Else
mache etwas anderes
End If

Da kam nur Mist heraus!

Wo es aber nach wie vor Probleme mit BASCOm gibt sind verschachtelte Rechenoperationen über mehrere Schritte. Und ganz interessant wird es wenn man gleichzeitig noch Werte casted z.B. Int auf Word oder Single auf Int usw.

Grüße,
Markus
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)