Zeit bei Schaltung von Pins


#1

Hallo zusammen,
ich versuche mit Hilfe des Calliope eine Funksteckdose zu schalten. Dazu muss ich eine Sequenz von Einsen und Nullen über einen 433 Mhz-Sender schicken.
Die Dauer der einzelnen Sequenzeinheiten liegt bei 400 Microsek. bzw. 1000 Microsek., dh. ich der MicroPython-Code sieht beispielhaft so aus:

pin1.write_digital(1)
sleep(0.35)
pin1.write_digital(0)
sleep(1)

Die ausgehende Sequenz funktioniert nicht - wenn ich sie mir mit Hilfe einer LED visualisiere, dann passt die Zeit nicht, dh. die Sequenz ist viel zu langsam…
Wie genau kann der Calliope Zeiten messen/schalten? Ist da was im Microsekundenbereich zu machen?

Viele Grüße
Marie

Bitte immer angeben:
Versionsnummer auf dem mini 1:.3
Betriebssystem: Win10
Benutzter Editor: Portmu 1.0.0 / OpenRoberta


#2

Hallo Marie,
ich benutze zwar micropython nicht, habe aber vielleicht trotzdem eine Lösung, wie du die Ausführungszeiten für Befehle ermitteln kannst. Führe dazu in einem Programm 3 Schritte aus.

  1. messe die Laufzeit einer leeren Schleife, die z.B. 10000 mal durchlaufen wird.
    for i in range(10000):
    pass
  2. messe die Zeit für die Schleife inklusive den Befehlen z.B.
    for i in range(10000):
    pin1.write_digital(1)
    sleep(0.35)
  3. gebe das Ergebnis von Schritt2 minus Schritt1 geteilt durch 10000 aus.
    nun kennst du die tatsächliche Ausführungszeit deiner Befehle.

Gruß
Weja