michael-simon.eu Posted March 20, 2015 at 01:30 PM Share Posted March 20, 2015 at 01:30 PM Moin zusammen, ich hab hier grade einen etwas merkwürdigen Effekt und wollte mal fragen, ob dass jemand anders zufällig auch schon aufgefallen ist (und ich den passenden Thread übersehen habe). Die Ausgangssituation ist folgende: - Python 2.7.9 auf Win 7 Pro x64 - Bindings, Daemon und Viewer sind aktuell - 3x IO16 an einem Master 2.0 mit Ethernet-PoE (Firmware auf alle aktuell) - Port a jeweils auf Input - Port b jeweils auf Output Das eigentliche Programm orientiert sich am Beispiel für die Interupt Callbacks, die Outputs tun noch gar nichts, die Interups sollen wie im Beispiel auf der Konsole ausgegeben werden. Ich starte das Programm und es tut nichts. Außer, ich habe den Brick-Viewer geöffnet, connected und bin auf dem Tab des IO16 mit dem ich grade teste. -> Dann funktioniert es ganz wunderbar. Wechsel ich auf einen anderen Tab oder disconnecte ist das Thema sofort wieder erledigt. Geht aber auch gerne ein paar mal hintereinander hin und her. Habe zum testen auch schon auf den USB-Anschluss gewechselt und das ganze noch mal mit komplett anderem Master und einem anderen IO16 getestet, auf hier der gleiche Effekt. Zum Testen in einer Linux-Umgebung bin ich leider noch nicht gekommen. Kennt jemand den Effekt oder kann das nachstellen? Beste Grüße Micha Quote Link to comment Share on other sites More sharing options...
photron Posted March 20, 2015 at 02:17 PM Share Posted March 20, 2015 at 02:17 PM Ich nehme an du hast eine wichtige Zeile im Interrupt Beispiel übersehen: # Enable interrupt on pin 2 of port a io.set_port_interrupt('a', 1 << 2) Standardmäßig sind alle Interrupts aus. Diese Zeile aktiviert den Interrupt Callback für Pin 2 auf Port A. Wenn du das in deinem Programm nicht konfigurierst dann bekommst du auch keine Callbacks. Es funktioniert aber, wenn du im Brick Viewer den IO-16 Tab auswählst, weil dann der Brick Viewer set_port_interrupt() aufruft um selbst den Interrupt Callback zu verwenden. Wenn du den Tab wieder abwählst stellt Brick Viewer den Interrupt Callback wieder aus. Sprich Brick Viewer kommt laufenden Programmen in die Quere, weil er die Callbacks umkonfiguriert. Darüber sind schon einige Leute gestolpert, daher haben wird das für die nächste Brick Viewer Version umgebaut, so dass Brick Viewer dann Callbacks nicht mehr umkonfiguriert. Quote Link to comment Share on other sites More sharing options...
michael-simon.eu Posted March 20, 2015 at 03:05 PM Author Share Posted March 20, 2015 at 03:05 PM Jetzt komme ich mir ein ganz kleines bisschen doof vor^^ Danke! Quote Link to comment Share on other sites More sharing options...
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.