Wie kann ich eine Liste der Anforderungen an einen Mikrocontroller für mein Projekt erstellen? Wie finde ich dann passende Mikrocontroller?

20

Ich habe an einem eBike-Steuerungsprojekt für den Arduino MEGA2560 gearbeitet. Das Programm führt 3x PID-Regelkreise, einen Batteriekapazitätsregelkreis (Interpolation basierend auf Nachschlagetabellen), einen Tachometer (Abtastwerte basierend auf einem Reedschalter) sowie einen LCD-Bildschirm zur Anzeige von Informationen aus. Die Eingänge bestehen aus 3 analogen Signalen: Batteriespannung, Strom und Benutzer-Gaspedal sowie einem digitalen Eingang: Tachometer (Reed-Schalter) Ein / Aus-Signal. Derzeit schafft es das Arduino, 10 Schleifen pro Sekunde zu absolvieren, wenn all dies mit "langer" Arithmetik ausgeführt wird. Da der TFT-LCD-Bildschirm eine enorme Rechenleistung benötigt, denke ich darüber nach, ihn durch einen alphanumerischen Bildschirm zu ersetzen.

Die Ausgänge bestehen aus einem analogen Drosselsignal, das zu einer Motorsteuerung, dem LCD-Bildschirm und möglicherweise einigen anderen Geräten geleitet wird, die analoge Signale benötigen. Daher sind ADC-Wandler unerlässlich und DAC wäre sehr nützlich, obwohl ich derzeit den Arduino PWM-Ausgang mit einem RC-Tiefpassfilter verwende. Ebenso wäre die Fähigkeit, digitale und analoge Signale zu lesen, ohne den Prozessor zu unterbrechen, groß.

Ich möchte möglicherweise ein Verbraucherprodukt daraus machen, daher möchte ich meine eigene Plattform von Grund auf mit einem anderen Mikrocontroller aufbauen, der mir mindestens 100 Samples pro Sekunde liefern kann (das 10-fache dessen, was der Arduino erreicht). Um Gleitkommazahlen zu vermeiden, werden in meinen Berechnungen lange Variablen und folglich Zahlen verwendet, die größer als 16 Bit sind. Daher gehe ich davon aus, dass eine 32-Bit-MCU eine gute Idee wäre. Eine MCU, die Gleitkommaberechnungen durchführen kann, kann auch interessant sein, um die Mathematik im Code zu vereinfachen.

Letztendlich bin ich mir nicht sicher, wie ich anfangen soll, nach MCUs zu suchen, die diese Anforderungen erfüllen und einen schnellen Übergang von der Arduino-Umgebung ermöglichen. Jede Anleitung, wie man solche MCUs findet, wäre sehr dankbar!

Eliott W
quelle
1
Ich möchte nicht unbedingt empfohlene Teile sein, sondern nur eine Methode oder Plattform oder eine Anleitung, wie man die Plattform findet, die ich benötige.
Eliott W
5
Dies ist viel besser als Ihre vorherige Frage, aber es ist immer noch sehr weit gefasst, und einige Punkte in Ihren Anforderungen sind nicht klar. Was meinen Sie zum Beispiel mit "ohne Unterbrechung des Prozessors"? Ich vermute, dass Sie auch keine Umfrage durchführen möchten. Sie müssen auch besser wissen, wie viel Rechenaufwand für die einzelnen Beispielsätze erforderlich ist.
Dave Tweed
1
Sie sollten die Verwendung von Ganzzahl-Mathematik in Betracht ziehen. Es ist das Richtige.
Scott Seidman
4
verwandt: Wie wählt man eine MCU-Plattform?
Nick Alexeev
4
Ganzzahlige Mathematik (lang oder kurz) ist viel schneller als Gleitkommazahlen. und Ganzzahl-Mathematik, die länger als die "native" Bittiefe des Prozessors ist, ist ebenfalls langsam. 32-Bit klingt also nach einer sehr guten Idee, vielleicht nach einem Gerät vom Typ "DSP".
PJC50

Antworten:

18

(Dies ist ein allgemeiner Leitfaden. Ich vermute, Sie könnten auch von der Codeoptimierung profitieren, aber das liegt außerhalb des Bereichs dieser Website.)

Schritt 1: Grobe Größe, Budget, Anbieter

Wähle eines von:

  • Computer (Raspberry Pi, Beagleboard, PC104-Platine, Intel Edison usw.). Startet ein Allzweck-Betriebssystem und hat viel Rechenleistung. Teurer und macht hungrig. $ 10- $ 100.

  • Große MCU. ARM Cortex-A- / PIC32- / dsPIC- / AVR32- / TI C-Serie DSP usw. Anständige Rechenleistung, Betriebssystem optional. ~ 5 $.

  • Kleine MCU. Cortex-M / PIC16. Nicht wirklich genug Platz für ein echtes Betriebssystem, vielleicht nur ein leichter Taskplaner. ~ 2 $.

  • Kleine MCU. Nur wirklich für Anwendungen, bei denen Sie sich um die letzten Mikroampere des Stromverbrauchs kümmern. ~ 1 $ oder weniger.

Zu diesem Zeitpunkt sollten Sie auch überlegen, welche Anbieter und Toolchains Sie mögen und welche nicht. Schauen Sie sich die Kosten von Dingen wie In-Circuit-Debugging-Geräten und IDEs an.

Schritt 2: Minimale Peripheriegeräte

Benötigen Sie Dinge wie USB? PCI? HDMI? SATA? Ungewöhnlich schnelle ADCs oder DACs? Fast alle der "kleinen" oder "winzigen" Kategorien haben diese nicht, obwohl USB ziemlich weit verbreitet ist.

Schritt 3: Prototyp

Suchen Sie sich etwas aus, das die oben genannten Kriterien erfüllt, und starten Sie es gegebenenfalls nach dem Zufallsprinzip. Finden Sie heraus, wie realisierbar es ist und wie viel Speicherplatz / Rechenleistung Sie benötigen. Du hast schon einiges davon gemacht. Das Schreiben in C sollte einen Großteil der Logik portabel machen.

Sobald Sie den Prototypen haben, können Sie sich sagen: "Ich brauche einen solchen, aber mit mehr X" und lassen Sie sich von diesen Entscheidungen leiten.

Schritt 4: Schrumpfen

Im Allgemeinen ist es einfacher, mit dem größten Mitglied (mit den meisten Flash- und RAM-Speicher) einer CPU-Familie zu beginnen, Version 1 Ihrer Anwendung zu schreiben und dann eine kleinere, günstigere Version auszuwählen. Sie können auch Zeit damit verbringen, Software in weniger Ressourcen einzubauen. Was sich lohnt, hängt davon ab, wie viele Einheiten Sie herstellen werden.

pjc50
quelle
14
Schritt 0: Toolkette (Firmware-Entwicklungsumgebung). Suchen Sie nach Entwicklungsumgebungen, die Sie für sich arbeiten lassen können. Hier wird gewonnen oder verloren. Selbst wenn Sie über ein passgenaues Silizium verfügen, die Firmware-Entwicklungsumgebung jedoch aus irgendeinem Grund nicht funktionsfähig ist, wird Ihr Projekt nicht in Gang gebracht. (Beispiel: Die Arduino-IDE hat Ihren Arduino-basierten Prototypen in Betrieb genommen.)
Nick Alexeev
8
Cortex-M als "kleine MCU" und PIC32 / AVR32 als "große MCU" zu kategorisieren, scheint etwas unglücklich. Ich persönlich habe PIC32 / AVR32 nicht verwendet, aber auf der Grundlage eines kurzen Überblicks über die technischen Daten würde ich sagen, dass sie alle in derselben Klammer sein sollten. (Es gibt Cortex-M-MCUs, die mit> 200 MHz arbeiten, viele Megabyte Flash und mehr als ein halbes Megabyte RAM haben)
Aleksi Torhamo
13

Schönes Projekt. Hier sind ein paar Hinweise, aber es wäre schwierig, dies für jedes Projekt zu verallgemeinern.

Beginnen Sie mit den Rechenanforderungen

Hier erfahren Sie, welche Art von Kern Sie benötigen und welche allgemeinen Leistungen die MCU erbringt. Ich schlage vor, Sie beginnen damit, da es im Gegensatz zu Peripheriegeräten offensichtlich nicht mit externen Komponenten erweitert werden kann.

Erstens scheinen Sie schwere mathematische Operationen mit großen ganzen Zahlen innerhalb der Schleife zu verwenden. Wie Sie bereits angedeutet haben, wären 32-Bit-Dateien hier nützlich. Daher ist ARM ein idealer Kandidat. Was die Betriebsfrequenz betrifft: Derzeit verwenden Sie einen Arduino MEGA2560 (der mit 16 MHz läuft, nehme ich an) und können 10 Schleifen / s ausführen. Wenn Sie 100 Schleifen / s erreichen möchten, sollten Sie mit einem Cortex-M3 / M4 im Bereich von 100 MHz oder mehr zufrieden sein (grobe Schätzung). Beachten Sie, dass der Cortex-M4F eine Gleitkommaeinheit hat.

Wir haben die Auswahl bereits eingegrenzt.

Speicherbedarf

Dies ist ganz einfach: Wählen Sie die MCU, die für den Prototypen den meisten RAM / Flash-Speicher in ihrem Sortiment hat. Sobald Sie den Prototyp validiert haben, wechseln Sie zu der MCU aus demselben Bereich, der gerade über genügend RAM / Flash verfügt, und kennen Ihre genauen Anforderungen.

Beachten Sie, dass Ihre Anwendung meiner Meinung nach nicht viel Arbeitsspeicher benötigt.

Nun zu den Peripheriegeräten

Sie brauchen unbedingt einen ADC. Alle MCUs der Reihe, die wir betrachten, haben einige, also ist es kein nützliches Kriterium. Es gibt auch keine digitalen Ein- / Ausgänge, es sei denn, Sie benötigen eine sehr große Anzahl davon (was anscheinend nicht Ihr Fall ist).

Sie scheinen einen DAC zu brauchen. Dies ist jedoch etwas, das Sie nicht so einfach finden und das die Kandidaten zu sehr einschränken wird. Daher halten wir diese Anforderung nicht ein und bleiben bei PWM und Tiefpass (was tatsächlich durchaus akzeptabel ist).

Sie erwähnen keine Kommunikationsschnittstelle außer dem LCD (später). Auf jeden Fall haben alle MCUs I2C / SPI / UART / ..., wenn Sie welche brauchen.

Das LCD

Dieser ist kniffliger, weil es viele verschiedene Lösungen gibt, die ganz unterschiedliche Anforderungen an die MCU stellen. Wählen Sie das LCD jedoch nicht abhängig von der MCU. Wählen Sie die für Ihr Produkt gewünschte LCD-Anzeige und anschließend die MCU, die diese effizient steuert.

  • Wenn Sie ein Zeichen-LCD möchten, ist es für die MCU am einfachsten und am wenigsten einschränkend, über eine serielle Schnittstelle (häufig SPI) mit ihr zu kommunizieren. Auf diese Weise werden nicht zu viele PINs verwendet, es können kleinere / billigere MCUs verwendet werden, und die Geschwindigkeit ist kein Problem.
  • Wenn Sie ein grafisches TFT-LCD wünschen: Wenn es ein kleines ist, kann die serielle Verbindung immer noch angemessen sein. Ab einer Größe von 320 x 200 und wenn Sie eine ansprechende grafische Benutzeroberfläche benötigen, möchten Sie zunächst mit der parallelen Benutzeroberfläche kommunizieren. In diesem Fall verwenden Sie entweder einen GPIO (der die MCU jedoch stärker belastet, weil Sie die Steuerleitungen etwas durcheinander bringen müssen) oder Sie wählen eine MCU mit einer dedizierten LCD-Schnittstelle (die häufig mit einer identisch ist) externe Speicherschnittstelle). Letzteres stellt eine starke Einschränkung für die Wahl der MCU dar, aber Sie haben keine anderen starken Einschränkungen, also ...

Jetzt wählst du

Gehen Sie zur ST Micro / NXP / Atmel-Website und verwenden Sie deren MCU-Auswahlwerkzeuge. Sie werden auch viel Zeit damit verbringen, Datenblätter zu lesen. Nimm dir diese Zeit. Es ist nicht verschwendet. Alles, was Sie hier lernen, auch wenn Sie es nicht speziell für dieses Projekt verwenden, kann nützlich sein.

Zu diesem Zeitpunkt müssen Sie auch die Anzahl der tatsächlich benötigten PINs überprüfen und das Multiplexing-Schema der ausgewählten MCU-Kandidaten überprüfen, um sicherzustellen, dass Sie alle benötigten PINs-Funktionen verwenden können. Da Sie natürlich die MCUs mit der niedrigsten Anzahl von Pins verwenden möchten, die Ihre Anforderungen erfüllen (aus Kosten- / PCB-Immobiliengründen).

Überprüfen Sie die Preise / Verfügbarkeit auf Mouser / Digikey. Hier sollte man aber nichts besonders Teueres brauchen. Vielleicht 5 € oder so.

Letzte Sache in Bezug auf die LCD-Steuerung

Es scheint, dass das Update des LCD Teil Ihrer Hauptschleife ist. Das sollte es nicht. Vor allem, wenn Sie 100-mal pro Sekunde eine Schleife spielen, ist dies nutzlos. Lassen Sie den Regelkreis alles berechnen und den Motorbefehl bei jeder Iteration anpassen, aktualisieren Sie jedoch nur die Werte, um sie irgendwo im Speicher anzuzeigen. Lassen Sie dann eine andere Schleife mit niedrigerer Priorität diese Informationen dem Benutzer anzeigen, wenn nichts Wichtigeres zu tun ist.

Ja, im Idealfall sind einige Aufgabenwechsel und andere Dinge erforderlich. Eigentlich ein echtes Betriebssystem (siehe FreeRTOS, Coocox OS, Nuttx, ... diese sind sehr klein, werden hauptsächlich in Cortex-M verwendet und bieten die erforderlichen Multitasking-Mechanismen).

trübe
quelle
Vielen Dank für Ihre umfassende Antwort! Mir ist aufgefallen, dass die ARM Cortex-MCUs alle mit 3,3 V arbeiten. Mein Gassignal muss zwischen 1 und 5 V skalieren. Ich vermute, wenn ich einen ARM-Controller verwenden möchte, muss ich eine Möglichkeit finden, die Spannung zu erhöhen, da sie von der MCU auf 3,3 V begrenzt wird.
Eliott W
Ja. Das Gassignal ist der analoge Ausgang, oder? In diesem Fall könnten Sie einen Opamp verwenden, um ihn zu verstärken.
dim
Ich bin mir nicht sicher, ob ich mit dem letzten Satz einverstanden bin, dass "ein echtes Betriebssystem" erforderlich ist. Ich nehme an, es hängt davon ab, wie viele fertige Lösungen Sie wünschen. Wenn Sie etwas wollen, bei dem Sie einfach Ihre Geschäftslogik einbinden und damit anfangen können, Einheiten herauszuschlagen, ist ein vollständiges Betriebssystem (beachten Sie, dass dies nicht unbedingt etwas wie Windows oder sogar Linux bedeuten muss!) Mit Sicherheit nützlich.
ein CVn
1
@ MichaelKjörling natürlich, ich meinte sowas nicht mal remote wie Linux. Sondern zum Beispiel so etwas wie FreeRTOS, Coocox OS oder Nuttx. Ich halte dies für ein echtes Betriebssystem, obwohl es sehr klein ist. Ich schrieb, dass dies auf Bare-Metal-Basis in der Tat mehr Zeit in Anspruch nimmt, das Debuggen erschwert und weniger flexibel ist. Und die Arduino-Umgebung (obwohl ich weit davon entfernt bin, ein Experte in diesem Bereich zu sein) scheint keine Tasking-Mechanismen zu bieten (und als solche betrachte ich sie nicht als ein echtes Betriebssystem).
dim
1
Ah. Nun, ich habe dann den "echten" Teil falsch verstanden. Nur zum Wohle von uns Ausländern, die gelegentlich hierher kommen, sollten Sie erwägen, diesen Teil in Ihrer Antwort zu klären.
ein
4

Beachten Sie, dass dies ein umfassendes Thema ist, das mit mehreren (subjektiven) Ansätzen richtig beantwortet werden kann.

Das Stapelaustauschformat eignet sich auch nicht zum Entwerfen von Problemlösungen. Zum Beispiel lassen Sie selten Leute Hardware für Sie entwerfen. Sie schlagen vielmehr ein Hardware-Design vor und stellen Fragen dazu.

Das gesagt...

Beginnen Sie mit Funktionen des Prozessors, die Sie nicht ändern können. Wie Geschwindigkeit und Speichergröße (falls zutreffend). Untersuchen Sie, ob Sie Interrupts benötigen und wie komplex die Interrupt-Behandlung sein muss.

Wenn Sie periphere Unterstützung wie ADCs oder DACs benötigen, ist die Situation komplexer. Sollten diese Funktionen in den Prozessor integriert sein oder sich außerhalb des Prozessors befinden? Preis, Genauigkeit und sogar Lärm sind Faktoren bei dieser Entscheidung.

Wenn externe Peripheriegeräte unterstützt werden sollen, berücksichtigen Sie die Art der erforderlichen seriellen Kommunikation. Externe Hardware benötigt möglicherweise SPI, I2C oder einen anderen UART-Typ. Wenn die Datenrate hoch ist, ist es möglicherweise am besten, einen Prozessor mit DMA-Funktionen zu finden, die mit seinen seriellen Kommunikationsports verknüpft sind.

Wenn es sich um eine eingebettete Prozessoranwendung handelt (was normalerweise einen für eine Aufgabe bestimmten Prozessor bedeutet), sollten Sie die Anforderungen in mehrere Gruppen aufteilen und jedem einen Prozessor zuweisen. Beispielsweise benötigt ein GUI-Anzeigeprozessor wahrscheinlich keine ADC-Funktion. Dieser objektive Lösungsansatz hat sich in der Software bewährt und kann mit sinkenden Prozessorpreisen auch auf die Hardware übertragen werden.

In der realen Welt ist dieser Ansatz iterativ. Das heißt, viele Projekte beginnen mit einem Prozessor und tauschen verschiedene Prozessoren aus, wenn Hardware- und / oder Softwareprobleme auftreten oder sich der Umfang des Projekts ändert.

st2000
quelle
Sie können besser beurteilen, welche Art von Zahlen zu erwarten sind als der Compiler. Ich würde den generischen Ansatz der Verwendung von Schwimmern vermeiden. Zum Beispiel kann es sein, dass Float-Ergebnisse auf verschiedenen Plattformen nicht gleich sind! Ich würde ganzzahlige Arithmetik verwenden und die Lösung auf Ihre Bedürfnisse zuschneiden.
st2000
3

Ich habe niemanden gesehen, der die Kosten für Werkzeuge erwähnte. Meine Firma entschied sich für einen TI CC2541 und fand heraus, dass dieser nur mit einem 4.000-Dollar-IAR-Compiler kompiliert wurde, definitiv ein Show-Stopper für einen Bastler. Auch der Programmierer. Es kann ein $ 20 oder viel mehr sein. Billigeres Werkzeug scheint heute eher die Norm zu sein. Vielleicht gehört dies bald der Vergangenheit an.

Wenn Sie es selbst reflowen, sind Pakete wie TQFP auch einfacher als beispielsweise BGA. Eine große BGA ist aufgrund persönlicher Erfahrungen schwer zu finden.

Bsee
quelle
2

Wenn das Produkt relativ preissensitiv ist und Sie über eine angemessene Entwicklungsfinanzierung verfügen, können Sie eine Reihe von Evaluierungsplatinen beschaffen und den Code auf jedem Board profilieren, um eine Vorstellung davon zu bekommen. Das sollte ziemlich einfach sein, wenn Ihr Code in portablem C geschrieben ist. Abgesehen von dem Mikro werden Sie die Toolchains mit Demo-Versionen evaluieren, bevor Sie die Kosten einer vollständigen IDE wie IAR oder Keil herausfinden. In einigen Fällen können Sie den Engpasscode direkt in der IDE ohne Hardware profilieren.

Wenn Sie die Entwicklungskosten stark einschränken, müssen Sie möglicherweise Kompromisse eingehen, um etwas zu finden, das für das Entwicklungssetup nicht zu viel kostet.

Zum Beispiel hat ST ein ARM Cortex M7-Evaluierungsboard mit einem schönen Farbdisplay für <100 US-Dollar. Es verfügt über eine FPU mit DSP-Funktionen, sodass Sie alles, worüber Sie gesprochen haben, problemlos ausführen können. Führen Sie wahrscheinlich eine PID-Schleife mit 100 kHz und nicht nur mit 100 Hz aus. Es ist wahrscheinlich übertrieben, es sei denn, diese Anzeige hat Priorität.

Wenn Sie einen günstigeren Prozessor ohne FPU anstreben, möchten Sie wahrscheinlich den PID-Code in seiner fertigen Form profilieren. Stellen Sie sicher, dass alle Skalierungs-, Linearisierungs- und Kalibrierungsfaktoren enthalten sind, da sie sich in Bezug auf die Verarbeitungszeit summieren können.

Oft haben die Peripheriegeräte und die damit verbundene Middleware-Qualität und -Verfügbarkeit (sowie die Lizenzbedingungen) starken Einfluss auf Ihre Wahl. Wenn Sie BT- oder WLAN- oder USB-Host-Modus und FAT-Dateien zum Speichern auf einem USB-Stick oder einer schnellen SD-Schnittstelle benötigen, sind diese Faktoren von Bedeutung. Einige Chips verfügen über einen integrierten LCD-Controller und einen Digitizer-Controller, die die Verwendung eines relativ kostengünstigen TFT-Panels ermöglichen. Übersehen Sie nicht die manchmal hohen Lizenzgebühren.

Wenn Sie eine Vorstellung vom benötigten Programmspeicher, der Verarbeitungsgeschwindigkeit und den Peripheriegeräten (einschließlich FPU) haben, können Sie beim Distributor eine parametrische Suche durchführen, bevor Sie die Datenblätter durchforsten. Einige Dinge, die zu einschränkend sind, können sein: Durchgangspaket, interner DAC, interner Ethernet-PHY, FPU. Keines davon ist wahrscheinlich notwendig und kann Ihre Auswahl vorzeitig übermäßig einschränken.

Viel Glück damit, es ist eine Menge Arbeit, dies richtig zu machen. Nach meiner Erfahrung ist es eine falsche Wirtschaftlichkeit, bei einem neuen Produkt zu kurz zu kommen, da die Kunden unweigerlich nach Dingen fragen, mit denen Sie nicht gerechnet haben, und Sie möchten über Kapazitätsreserven verfügen, um diese zu liefern, ohne von vorne anzufangen. Wenn das Produkt andererseits zu teuer ist, können Sie nicht genug mit ausreichenden Margen verkaufen, um das Geschäft aufrechtzuerhalten.

Spehro Pefhany
quelle
1

Es gibt verschiedene Plattformen wie Arduinos, PIC-Mikrocontroller, FPGAs und vieles mehr. Ich habe in der Vergangenheit mit Arduinos gearbeitet und es hat einen ADC-Port, der 74kS / s erreichen kann. 100 Samples pro Sekunde sind extrem langsam und ich frage mich, wie Sie das herausgefunden haben? Andererseits möchten Sie sich fragen, ob Sie Schnittstellen wie SPI, CAN, I2C oder UARTs benötigen. Sie alle können ihre eigenen Vorteile haben und es liegt an Ihnen, zu überlegen, ob Sie mit einem oder mehreren Sklaven sprechen. Der letzte, aber wahrscheinlich wichtigste Schritt wäre, zu erraten, wie viele Pins auf dem Mikrocontroller Sie verwenden müssen.

"Die Fähigkeit, analoge und digitale Signale zu lesen, ohne den Prozessor zu unterbrechen, wäre großartig." Ich kann nur vermuten, dass Sie sich nicht mit externen oder internen Puffern befassen möchten, die Ihre Daten verbreiten und möglicherweise Ihre Datenverarbeitung verlangsamen. Ist das richtig? Wenn ja, ist das mehr Programmieraufwand für Sie, aber Prozessoren sind normalerweise in der Lage, die Geschwindigkeit von 100 Samples pro Sekunde zu bewältigen. Es liegt an Ihnen, die Uhr, die Abtastrate und den Rest zu programmieren.

Berücksichtigen Sie auch Unterbrechungen in Ihrem Programm, wenn Sie die Daten kontinuierlich abfragen und andere Aufgaben ausführen möchten, wenn ein Flag gesetzt ist.

12Lappie
quelle
2
Ich denke, Sie haben den Punkt verpasst. Er hat einen Prototyp auf einem Arduino gebaut. Die Abtastung ist nicht langsam. Die Regelkreise SIND langsam. Er hat drei PID-Regler, die mit Fließkommazahlen auf dem Arduino berechnet werden, sodass sie in einem antarktischen Winter langsamer als Melasse sind. Sampling ist also nicht das Problem. Ineffizienter Code ist.
JRE
Da hast du recht.
12Lappie
Ja, das Problem ist, dass, obwohl meine Schleifen lange Arithmetik und keine Gleitkommazahlen haben, so viele Berechnungen durchgeführt werden müssen, dass der Arduino einmal pro Schleife eine Abtastung durchführt und meine Abtastrate sehr gering ist (derzeit 20 Abtastungen pro Sekunde). .
Eliott W