Forum: Mikrocontroller und Digitale Elektronik Arduino micro auf NUCLEO 144


von Black D. (Gast)


Lesenswert?

Moin zusammen, ich habe ein Programm für den Arduino micro geschrieben. 
Leider läuft es darauf nicht ganz flüssig. Ich lasse mit einem Interrupt 
Timer1 verschieden lange arrays durchlaufen. So dass bestimmte 
Frequenzen mit den arrays erreicht werden. Leider sind die arrays und 
die Funktionen mit denen ich die Kurven errechne wohl zu groß und/ oder 
der Arduino zu langsam? Bei einer Timer1 Frequenz von 160kHz komme ich 
mit 3200 Stellen nur auf 41Hz anstatt auf 50Hz.
Das Problem lösen soll jetzt ein Nucleo F767ZI mit STM32. Wie kann ich 
am besten das schon fertige Arduino Programm umschreiben damit es auf 
dem Nucleo Board laufen kann?
Viele Grüße

von OMG (Gast)


Lesenswert?

Black D. schrieb:
> Das Problem lösen soll jetzt ein Nucleo F767ZI mit STM32

Echt jetzt?
Solltest du nicht lieber einen Grosrechner eiener deutschen
Wetterwarte verwenden?

Oder doch lieber mal Hirnschmalz anwenden und schauen was
du falsch machst?

von Leser (Gast)


Lesenswert?

Black D. schrieb:
> Bei einer Timer1 Frequenz von 160kHz
> komme ich mit 3200 Stellen nur auf 41Hz anstatt auf 50Hz.

a) im alten Thread nicht antworten
b) Hinweise nicht wahrgenommen
c) damit alles falsch machen
d) jetzt soll das mit mehr Rechenleistung kompensiert werden

Irgendwie...

von chris_ (Gast)


Lesenswert?

>Das Problem lösen soll jetzt ein Nucleo F767ZI mit STM32. Wie kann ich
>am besten das schon fertige Arduino Programm umschreiben damit es auf
>dem Nucleo Board laufen kann?

Einfach das STM32 Framework installieren (müsste aus dem Boards-Menue 
funktionieren).
Der F767 wird laut der Tabelle hier unterstützt:
https://github.com/stm3A2duino/Arduino_Core_STM32
Die Timer des F767 sind gegenüber den Timern des Atmega328 sehr 
unterschiedlich. Es gibt aber schon Arduino-Libs dafür.

von chris_ (Gast)


Lesenswert?

Upps .. da ist ein Fehler im Link:
https://github.com/stm32duino/Arduino_Core_STM32

von chris_ (Gast)


Lesenswert?

Hier sind noch die Timer Beispiele:

https://github.com/stm32duino/STM32Examples/tree/main/examples/Peripherals/HardwareTimer

Meiner Meinung nach ist es etwas schade, dass hier normaler C-Style 
verwendet wird und nicht die übliche Einfachheit der 
Arduino-Library-Styles. Aber STM hat hier wohl keinen Bock, das Ganze zu 
"beautifien".

von Stefan F. (Gast)


Lesenswert?

Black D. schrieb:
> Wie kann ich am besten das schon fertige Arduino Programm
> umschreiben damit es auf dem Nucleo Board laufen kann?

Ein Arduino Programm lässt sich wohl am einfachsten auf einen anderen 
Mikrocontroller portieren, der ebenfalls von Arduino unterstützt wird. 
Einen entsprechenden Core gibt es ja von ST.
https://github.com/stm32duino/Arduino_Core_STM32

Allerdings kommt mir dein Sprung extrem gewagt vor. Ich wette, der 
Funktionsumfang des STM32F767 wird dich überfordern.

von S. Landolt (Gast)


Lesenswert?

Geht es noch immer um diese Geschichte mit der ISR, die für das Schalten 
zweier Ausgänge 280 Takte benötigt?

von Black D. (Gast)


Lesenswert?

Ja der STM32F767 ist sehr wahrscheinlich überdimensioniert und hat einen 
viel größeren Funktionsumfang als ich eigentlich brauche und der mich 
auch überwältigt. Den habe ich aber grad hier. Ein kleineres Nucleo 
Board müsste ich erst bestellen.

Ja es geht immer noch darum ein Signal zu erzeugen welches aus dem 
Vergleich eines 50Hz Sinussignals und eines 25kHz Dreiecksignals 
berchnet wird.
Mein bisheriges Programm scheint den Arduino zu überfordern bzw. nicht 
gut genug programmiert zu sein. Ich habe es bisher aber auch nicht 
anders hinbekommen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.