Re: Problem bei Wertübergabe an Variable Kategorie: Programmierung (von Markus - 18.08.2008 14:00) | ||
Als Antwort auf Re: Problem bei Wertübergabe an Variable von Schroeder - 18.08.2008 13:40 | ||
| ||
Servus Peter, Danke für Deine Antwort, ich hab das hier natürlich nur vereinfacht dargestellt! Ich denke aber Deine Antwort mit den verschieden threads ist die Lösung meines Problems! Werde ich heute Abend mal testen ;-) vielen Dank, Markus > Hallo, > > warum setzt du ueberhaupt eine Variable und machst es nicht so, > wie du es schon gepostet hattest, also direkt ein wait auf adc.port? > > >>wait ports.adc(0) > 300 > > deine andere Variante, Entschuldige, aber, die macht keinen Sinn. > > Benötigst du aber die Variable auch woanders, dann solltest du die ad port > Abfrage in einem eigenen Thread packen. > > y=0; > > thread a > { > wait ports.adc(0) > 300 > { > y=1; > } > wait ports.adc(0) <= 300 > { > y=0; > } > } > > thread b > { > ... > > wait y==1 > ... > } > > Gruss > Peter > > > > Hallo nitraM, > > > > danke für die schnelle Antwort! > > Ja, genau so mach ich das!!! > > Und was wäre die Lösung? Entschuldige die unverschämte Frage ;-) > > Ich knobel da schon länger dran... > > > > Es geht konkret darum, ich will einen Motor Starten für ein BHKW, Speicher kalt => Motor starten, > > Speicher warm => Motor abstellen, Speicher kalt => Motor starten, ....... > > das alles natürlich vollautomatisch... > > > > So Quasi: "C2 Station warte bis der Speicher kalt ist, dann starte den Motor maximal 5 sec, > > bei frühzeitigem erreichen der mindestdrehzahl spure den Starter aus, ansonsten spure nach > > 5 sec aus, warte 30 sec und versuche es erneut. Wenn es nach zwei weiteren versuchen nicht geht, > > schreibe in Display, dass was faul ist!" ;-) > > > > Danke, > > Markus > > > > > > > Hallo Markus > > > fragst du den AD-Port vor dem wait ab??? > > > > > > etwa so: > > > > > > ... > > > if ports.adc(0) > 300 y = 1; > > > ... > > > ... > > > wait y == 1; > > > stports.setRel(1,1); > > > ... > > > ... > > > > > > > > > > > > Wenn ja, dann ist die Sache klar.... > > > überleg mal, was passiert wenn y=0 und du zum wait kommst... > > > Dein y wird ja nicht mehr eingelesen... > > > > > > nitraM > > > > > > > > > > Hallo C2-Gemeinde, > > > > > > > > ich hab ein kleines Problemchen! > > > > > > > > Ich frage einen AD Port ab, an dem ein Poti hängt, das funktioniert auch sehr gut, > > > > jetzt möchte ich, wenn ein gewisser Wert überschritten wird, einer Variablen einen Wert zuweisen, sieht dann bei mir so aus: > > > > > > > > if ports.adc(0) > 300 y = 1; > > > > > > > > Wenn ich diese Variable dann weiterverarbeiten will, dann geht das irgend wie nicht! Beispiel: > > > > > > > > wait y == 1; > > > > stports.setRel(1,1); > > > > > > > > Das Prog funktioniert wenn ich follgendes mache: > > > > > > > > wait ports.adc(0) > 300; > > > > stports.setRel(1,1); > > > > > > > > bzw. > > > > > > > > die if Anweisung weglasse und nur y = 1; in den Quelltext schreibe... > > > > > > > > Kann mir vielleicht jemand weiterhelfen, ich stehe da momentan völlig auf dem Schlauch! > > > > > > > > Danke für Eure Hilfe, > > > > > > > > Markus > > > > > > > > | ||
Antwort schreiben Antworten: |