Gast Robin Geschrieben December 22, 2013 at 10:42 Geschrieben December 22, 2013 at 10:42 Hallo zusammen, ich habe ein Problem mit dem Industrial Quad Relay Bricklet. Wenn ich mit setMonoflop(1, true, 1000) einen Monoflop auf das erste Relay lege lässt der Monoflop nach einer Sekunde wieder los. Wenn ich allerdings mit setMonoflop(2, true, 1000) eins der anderen drei Relays anspreche, zieht das Relay zwar an, lässt aber nicht mehr los. Das ist besonders ärgerlich, weil die Funkfernbedienung, die ich daran angeschlossen habe natürlich nicht zwei Daten auf einmal senden kann. Kennt jemand das Problem oder liegt es mal wieder an mir? Zitieren
photron Geschrieben January 6, 2014 at 10:22 Geschrieben January 6, 2014 at 10:22 Die Signatur ist so void BrickletIndustrialQuadRelay::setMonoflop(int $selection_mask, int $value_mask, int $time) Das zweite Parameter ist nicht bool, sondern int. Mit der $selection_mask wählst du per Bitmaske aus auf welchen Pins einen Monoflop starten willst. Mit der $value_mask wählst du per Bitmaske per Pin aus ob ein Monoflop auf High oder Low erfolgen soll. setMonoflop(1, true, 1000) ist also eigentlich setMonoflop(0b0001, 0b0001, 1000) wobei PHP diese Binärschreibweise nicht kennt und die hier nur zur Verdeutlichung steht. Das funktioniert also zufällig. Aber setMonoflop(2, true, 1000) ist eigentlich setMonoflop(0b0010, 0b0001, 1000) Also Pin 2 auf Low, die 1 in der $value_mask wird ignoriert. Für Monoflop an Pin 2 auf High muss du also setMonoflop(2, 2, 1000) aufrufen. Nachtrag: Ah, ich sehe die Dokumentation redet da an einer Stelle verwirrender weise von true/false. Ich werde das gleich verbessern. Zitieren
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.