Archiv verlassen und diese Seite im Standarddesign anzeigen : Einfacher Befehl um nach Variablenderung einmalig ausführen
Hi,
gibt es einen Befehl in Bascon wenn z.B eine Bit Variable von 0 auf 1 gesetzt wird eine Anweisung nur einmalig auszuführen?
Ungefähr so
If bit =1 then nur einmal
array =0
end if
Ich habe eine Variable die nach 24 Stunden auf 1 gesetzt wird und danach muss ich mein Array mit nullen "löschen" beschreiben. Dann kommen neue Daten ( alle 5 Minuten ein Wert). Wenn ich in mein Diagramm Menü gehe wird ja das Ganze Array ausglesen. Dies kann ich auch Programmtechnisch nicht ändern, da sonst in anderen Menüs die Werte nicht gespeichert werden.
Noch eine Variable deklarieren, in der du speicherst, ob die Anweisung schon ausgeführt wurde oder nicht?
Wenn ich dich richtig verstehe wohl das einfachste.
Grüße
Vielleicht steh' ich auch daneben:
Hast du nicht in deinem Programm eine Stelle, wo du mit dem array-index wieder an den Anfang zurückspringst ?
Wär das nicht eine gute Gelegenheit, das array zu löschen ?
Ich habe eine Variable die nach 24 Stunden auf 1 gesetzt wird und danach muss ich mein Array mit nullen "löschen" beschreiben
If bit =1 Then
bit=0 'hier löschen, an anderer Stelle setzen.
array =0 'das geht so natürlich nicht, du musst jedes Element auf 0 setzen, z.B. in einer For-Schleife
end if
Meinst du so?
Gruß
Rolf
Sauerbruch
03.11.2008, 19:43
...vielleicht verstehe ich das Problem nicht in seiner ganzen Komplexität, aber wie wär´s denn z.B. hiermit:
If Bit = 1 then
Bit = 0
Array = 0
(und was sonst noch alles...)
End if
Gruß & Co...
Moin,
ich hatte die Hoffnung, das es einen einfachen Befehl dafür gibt. wie eine Flankenerkennung.
Eine weitere Variable ist wohl die einfachste.
Wenn ich die das Array lösche, wenn es an den Anfang gesetzt wird, kann ich mir das Diagramm nicht mehr anschauen.
Also ich setzt ein Bit, wenn meine Solaranlage z.B. 300 mA liefert.
Jetzt wird jede 5 Minuten in das Array geschrieben.
Nach 12 Stunden Ist das Array voll.
Wenn Die Sonne um 6 Uhr die 300 mA liefert, dann wäre um 18 Uhr das Array wieder gelöscht. Ich könnte nach der Arbeit also nicht sehen wieviel der Tag gebracht hat.
Mein array startet mit einer If then Schleife. Wenn Strom größer 300 then...
Dieses Bit kann ich nicht verwenden, sonst würde ich in jedem Programmlauf löschen, wenn die Sonne scheint.
Okay dann werde ich noch eine neue Variable einbinden.
Ich danke euch.
Nach 12 Stunden Ist das Array voll.
Wenn Die Sonne um 6 Uhr die 300 mA liefert, dann wäre um 18 Uhr das Array wieder gelöscht.
Warum hörst du dann nicht einfach auf zu schreiben, wenn das Array voll ist (der Zeiger auf der letzten Position steht)?
Außerdem verstehe ich nicht, warum du das Array "löschen" musst. Kannst du nicht die Werte nur überschreiben. Wenn du die Werte dann anzeigen lassen willst, hörst du bei der letzten geschriebenen Position auf (falls du vor 18 Uhr nachschaust).
Oder habe ich das jetzt wieder falsch verstanden?
Gruß
Rolf
Hi for_ro,
nein falsch verstanden hast du das nicht.
Ich kann nur die Ganze Zeitspanne auslesen und auf das Display geben.
Ich benutze 2 Zeigervariablen, die auch noch für andere dinge sind. Die gleiche Idee hatte ich auch schon.
Es ist sehr unübersichtlich wenn das Diagramm sich mit alten Werten vermischt. Und da ich keine Uhr inplementiert habe, wird sich je nach Wetter und Jahreszeit der Aufzeichnungsbeginn verschieben.
Aber ich nehme einfach noch ne Variable und dann ist der Programmteil fertig.
Wollte nur nachfragen ob es auch mit einem einzelnen Befehl geht, den ich noch nicht kenne.
Dank dir
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.