Hallo Micro5,
elemeniere mal den Flight Controller indem Du die ESCs nacheinander direkt mit dem Empfänger und einem Motor verbindest (Luftschrauben abmachen!).
So kannst Du sehen ob die richtig...
Art: Beiträge; Benutzer: botty
Hallo Micro5,
elemeniere mal den Flight Controller indem Du die ESCs nacheinander direkt mit dem Empfänger und einem Motor verbindest (Luftschrauben abmachen!).
So kannst Du sehen ob die richtig...
inka,
du kannst diese Rechenspielerei getrost weglassen.
Bei den AVRs bringt ein delay keinerlei Vorteile, da hier kein Sleep-Mode aktiviert wird, der Energie sparen könnte (selbst im Due Code wird...
Hi again,
die Zeile in der Initialisierung stimmt nicht
RCC->AHB1ENR |= RCC_APB1ENR_SPI2EN; //Takt für SPI2 aktivieren
sondern muss wohl so lauten
Hi,
also zur HAL kann ich nicht viel sagen. Wenn ich hier einen stm32f446er mit SPI2 in CubeMX auswähle und den Transfer-Master-Mode mit Soft Nss eingebe, dann werden MOSI und CLK mit Alternate...
Hallo,
mir fallen einige Dinge bei der ganzen Sache auf. Leider bin ich schon eine Weile aus der STM32 Programmierung heraus, so dass das was ich hier schreibe eher als Hinweise denn als Lösungen...
White_fox, deinen Interrupthandler zu definieren geht so:
Nehmen wir an du möchtest für dem TIM7 einen Handler schreiben.
In deinem Projektordner befindet sich die Datei "startup_stm32f44axx.s",...
Bei unsigned gilt
Addition:
/* a + b */
ULLONG_MAX - a < b ==> Ueberlauf
Subtraktion
Hi,
das Kernthema bei der Verarbeitung deiner Tastatureingaben ist, dass sich der Algo grundsätzlich geändert hat.
Als du noch Single-Threaded programmiert hast, hattest du eine Endlosschleife,...
Das liegt aber nicht an pthread_testcancel() sondern an deinem msleep()-Makro, welches den Test auf einen Tastendruck nur einmal in einer Sekunde ausführen läßt.
Reduzier das doch mal auf 1ms - mal...
Sorry, da ist mir ein Fehler unterlaufen:
Die Variable "bla" ist Blödsinn es muss in "func()" lauten:
#include <stdio.h>
#include <pthread.h>
#include <assert.h>
void *func(void *arg) {...
Probiers mal damit.
#include <stdio.h>
#include <pthread.h>
#include <assert.h>
int bla;
So richtig verstanden habe ich deine Frage noch nicht.
Willst du ein neues Fahrgestell aufbauen das du mit der C-Control regeln möchtest oder möchtest du einfach die Motoren im Pro-Bot 128 Chassi...
Neben der Variante mehrere ADC zu multiplexen gibts von STMicroelectronics ARM-basierde Chips die locker 30 ADC-Channels haben (z.B. STM32F303 ).
Vorrausgesetzt du kannst einen LQFP100 aufwärts auf...
Ja, ich denke das geht so mit dem detach.
Du musst nur darauf achten das du vor dem start eines neuen Threads dein runstate Element testest. Erst wenn das 0 ist kannst du einen neuen Thread auf...
Nein eine weitere Variable brauchst du nicht.
Mit der Funktion pthread_cancel wird der Thread am nächsten cancel point unterbrochen. Ein cancel point ist entweder eine Systemfunktion oder du...
Nein, das join kommt woanders hin.
Aber erstmal musst du zwei Typen von Threads unterscheiden:
1) Ein Thread auf den du nicht warten willst und der einfach durchlaufen soll ist ein "Detached"...
zu a)
ja, task_PID_[ABC] wird durch die allgemeine form pid_calc ersetzt.
Sinngemäss wie du auf die Elemente des Arrays zugreifst sähe so aus (ohne das ich jetzt verstehe was dein Algo macht):...
Hi,
die erste Frage hast du dir schon selbst beantwortet. Den Dereferenzierungsoperator "->" brauchst du nicht mehr, wenn du mit dem Array von Strukturen arbeitest. Du musst nur den Index für...
Wenn du mit Zeigern arbeitest musst du dir im Klaren darüber sein, dass es immer zwei Speicherbereiche zu unterscheiden gibt. Der eine ist der Speicherbereich in dem die eigentlichen Daten stehen,...
Na ja,
zuerst must du die PIDinit ergänzen:
void PIDinit(void) {
PID_A.tid = 0;
PID_A.motor_id = OUT_A;
// für alle Variablen und dann natürlich die anderen Elemente der...
Hallo HaWe,
sorry das ich mich jetzt erst melde aber bei dem schönen Wetter konnte mich am WE nichts vor den Bildschirm locken.
Zu Deinen Fragen:
Meine "struct pid" sollte nur ein Auszug aus...
Oder wenn man in der reinen C Welt bleiben möchte - ist jetzt keine Kritik @Mxt - kann man's halt so machen:
#include <stdio.h>
#include <pthread.h>
struct pid {
pthread_t tid;
char*...
Hallo HaWe,
also nachdem ich mir dein Mindstrom Code angesehen habe, wäre wohl der erste Schritt Deine Berechnungsroutinen "task_PID_[ABC]" so umzuscheiben, das sie als Parameter einen Zeiger auf...
Nein, der Motor reicht nicht. Du gibst immernoch eine Untersetzung von 49:1 ein. Und das ist nicht richtig. Schau mal ins Diagram, da wird die Drehzahl des Motors von 0-7000 U/min angegeben. Diese...
Meiner Meinung nach stimmen zwei Sachen bei der Eingabe nicht:
a) 2,9m bzw 290cm Raddurchmesser sind ein bischen hoch?!?
b) auch wenn das Getriebe 49:1 ist, so liegt die angegebene Drehzahl im...