Abtastrate/Abtastfrequenz Pins und Sensoren

Hallo und guten Abend,

eine Verständnisfrage zur grundlegenden Funktion des Calliope-Microcontrollers:

Ich habe bereits erfolglos gesucht, vll. fehlt mir auch die richtige Begrifflichkeit:

  1. Mit welcher Abtastrate/Abtastfrequenz (also wie viele Abfragen pro Sekunde) frägt der Calliope interne, bzw. an den Pins extern angeschlossene Sensoren ab?

  2. Hat die benutzte Programmiersoftware (NEPO, Makecode, etc.) Einfluss auf die Abtastfrequenz oder ist diese hardwareseitig festgelegt?

Vielen Dank und viele Grüße

Roland

Hallo Roland,
zu 1.:
Bei der Programmierung des Calliope Mini mit NEPO wird im Browser aus dem „grafischen“ NEPO Programm C++ Code erzeugt, den du dir rechts mit dem vierten Reiter von oben „Öffne/Schließe die Ansicht des Quellcodes“ [<>] ansehen kannst. Beim Klicken auf den Startknopf für das Programm wird der C++ Programmcode zum OpenRoberta Server gesendet, kompiliert, mit der microbit C++ Bibliothek gelinkt und das daraus erzeugte Maschinenprogramm (NEPOprog.hex) als Downloadlink zurückgegeben und kann dann auf dem MINI Laufwerk gespeichert werden.
Nahezu jedes Programm benötigt einen „Wiederhole …“ Block. In diesem Block generiert NEPO eine kleine „Bremse“ in der Form:

_uBit.sleep(_ITERATION_SLEEP_TIMEOUT);

Die Konstante _ITERATION_SLEEP_TIMEOUT definiert den Wert 1 (= eine Millisekunde)
Quelle:

Das bedeutet, dass ein Sensor in einer Schleife theoretisch maximal 1000 Mal pro Sekunde abgefragt werden kann, was aber in der Realität nicht der Fall sein wird sondern eher weniger, da in der Schleife auch viele andere Programmschritte abgearbeitet werden.
Mit NEPO ist definitiv keine höhere Abfragerate möglich.

Zu 2.:
Ja, die verwendete Programmiersoftware hat einen Einfluss auf die Abfragerate innerhalb einer Schleife. Wenn man den Calliope Mini z.B. direkt mit C/C++ programmiert, dann kann man Schleifen auch ohne die „Zwangspause“ _uBit.sleep() programmieren.

Viele Grüße
Hubert

Hallo Hubert,

vielen dank für die Antwort.

Viele Grüße

Roland