Bascom, Programm verzeigen

OP #1891074
Lesenswert?
• ▲
▼
Guten Morgen zusammen bin mir  gerade ein kleines App am basteln, und 
bin auf folgende Probleme gestoßen.

1. wenn ich if /elseif /elseif benutze dann geht der immer in den ersten 
elseif Schritt der möglich ist und fängt danach wieder bei if an anstatt 
alle elseif Befehle weiter abzuarbeiten die noch weiter unten stehen und 
auch alle Bedingungen erfüllt haben, ist das normal? O.o

2. wie bekomme ich es hin das ich das Programm verzweigen kann, sprich 
ich lasse gleichzeitig nen Timer von 5 sek ablaufen und solange blinkt 
ne Led mit 1 Hz? Ich hab es jetzt so hinbekommen, mit nem Counter aber 
finde das nicht so schön, deshalb wüsste ich gerne wie ich zwei 
parallele Stränge im Programm einbauen kann die gleichzeitig 
abgearbeitet werden.



Mit freundlichen Grüßen
der Bascom Noob :D
Moderator (Firma: Titel) Persönliche Seite #1891101
Lesenswert?
• ▲
▼
Zeig doch mal deinen Code...  :-/

Florian P. schrieb:
> geht der immer in den ersten elseif Schritt der möglich ist
Das ist das gewünschte Verhalten einer if-elsif-Kette. Du wirst 
vermutlich eine andere Vorgehensweise wählen müssen.

> deshalb wüsste ich gerne wie ich zwei parallele Stränge im Programm
> einbauen kann die gleichzeitig abgearbeitet werden.
Richtig parallel geht das nicht. Du hast nur 1 Prozessor, dun der kann 
nur jeweils 1 Befehl abarbeiten. Du wirst also (wie Windows und jedes 
andere Multitasking-OS) deine Rechenzeit auf die verschiedenen Aufgaben 
aufteilen müssen. Am einfachsten geht das, indem du in einer 
Dauerschleife anfangs die Eingänge einliest, dann schnellstmöglich die 
Ausgänge berechnest, und die Werte zum Schluss rausschreibst. So wie 
auch eine "übliche" SPS arbeitet.
OP #1891113
Lesenswert?
• ▲
▼
Ja schön das ist mir auch schon so ziemlich klar gewesen aber mit 
welchen Befehlen erzeug ich eben den Effekt, das es scheint als ob er es 
parallel abarbeitet?
wie würde ein Programm aussehen bei dem 2 Led in unterschiedlichen 
Frequenzen blinken?

und mit welchen Anweisungen umgehe ich den Effekt von elseif das er auch 
noch die nachfolgenden Schritte abarbeitet?
Gast #1891118
Lesenswert?
• ▲
▼
select, case, ist auch ne schöne Struktur.

Naja, 4Hz und 1Hz "parallel" da langweilt sich der µC aber mächtig
dazwischen.

Du kannst zwei Timer verwenden und unterschiedlich preloaden,
dann nen Zähler hoch counten und schon läuft die Geschichte.
Kannst aber auch alles aus einem Timer heraus generieren.
Gast #1891804
Lesenswert?
• ▲
▼
in der Hilfe steht es so:

[...]
If A = 10 Then Print "New in BASCOM"
If A = 10 Then Goto Label1 Else print "A<>10"
[...]

also kein elseif, weil das wird immer ausgeführt wenn die If bedinung 
nicht passt, sondern nur mit if .. then .. den Bedinung-erfüllt-Fall 
abfragen und das für jede Bedinung.
Oder Select .. Case .. ist auch ganz gut für sowas.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.