Forum: Mikrocontroller und Digitale Elektronik Softwareseitige Diskussion mit Evaluation einer Schrittmotoransteuerung - stm32f103c8t6


von Timbo2023 (timbo2023)


Lesenswert?

Guten Abend die Mikrosteuerungs-Szene,



Ich habe ein neues zu bewertendes Anliegen an Euch, nachfolgend seht Ihr 
ein Ausschnitt eines Programms zur Ansteuerung eines Schrittmotors.

Könntet Ihr hier einmal kommentierend "rüber schauen"?

(1) PUL (PA4) soll angesprochen werden
(2) DIR (PA5) soll gesetzt werden, je nach Richtung
(3) ENA (PA6) soll auf "high" dauerhaft gesetzt werden, ist aber schon 
werksseitig auf "high" geschaltet lt. Datenblatt

Ich habe zudem einen OPTO-Eingang, den ich einfach freilassen werde, da 
ich ihn nicht deuten kann.

Nun aber zum Quellcode-Ausschnitt als einfachen Diskussionsstart. Durch 
ein Umschalten (engl. toggling) soll die Schrittmotorsteuerung 
angesprochen werden. Könntet Ihr mir hier einmal den Unterschied kurz 
zwischen ODR und BRR darstellen, ist der hier wichtig, was ich erst 
einmal nicht so sehe?

Zudem setzen wir dabei im Ausgabe-Register abwechselnd die Pins von 
"high" auf "low":
1
int main()
2
{  
3
    RCC->APB2ENR |= 0xFC;
4
5
    // PA4, PA5 und PA6 müssen wir als Output deklarieren und "freischalten"
6
7
    GPIOA->CRL = 0x43334444; // Pin-Konfiguration setzen
8
    GPIOA->ODR |= (1<<6);    // ENA auf "high" setzen, Motor freischalten
9
    GPIOA->ODR |= (1<<5);    // DIR möglicherweise setzen, Richtung noch nicht herausbekommen
10
11
  while(1)
12
  {
13
  GPIOA->ODR = 0x0000;    // einfachstes toggling, aber mit Ziel PA4 anzusprechen
14
  delay_ms(1000);  
15
  GPIOA->ODR = 0xFFFF;
16
  delay_ms(1000);  
17
  }
18
}
19
20
21
22
void delay_ms(uint16_t t)
23
{
24
  volatile unsigned long l = 0;
25
    for(uint16_t i = 0; i < t; i++)
26
    for(l = 0; l < 6000; l++)
27
    {
28
    }
29
30
}


Mit besten Grüßen
TIMBO

: Bearbeitet durch User
von Wastl (hartundweichware)


Lesenswert?

Timbo2023 schrieb:
> Mit besten Grüßen

Die Grüsse sind noch das Beste an deinem Eröffnungsbeitrag.

Magic Numbers (0x43334444 etc.)? Nein, das tut man nicht!
delay_ms mit einer Zählschleife? Nein, das tut man nicht!

Timbo2023 schrieb:
> Könntet Ihr mir hier einmal den Unterschied kurz
> zwischen ODR und BRR darstellen

Einfach mal das Datenblatt / User Manual lesen, da steht so etwas drin.

von Timbo2023 (timbo2023)


Lesenswert?

Naja, ich habe aufgrund meiner akademisch-studierten Erfahrung die neuen 
Bundesländer wohl überschätzt im Mikrosteuerungs-Gebahren und den 
fundierten Antworten -

Bei uns im Westen "macht man" eigentlich eher, das hat uns 
imperialistisch groß gemacht ...

Eventuell könnten Sie aber noch einmal zu "macht man nicht", "macht 
man", als Beitragsform fundierter werden...

Ich bin faktisch gesehen, noch nicht einmal auf die Aussage an, die Pins 
4-6 als Ausgang zu setzen, vielmehr auf die Programmbeschreibung des 
"Umschaltens".

von Klaus S. (kseege)


Lesenswert?

Timbo2023 schrieb:
> Ich habe zudem einen OPTO-Eingang, den ich einfach freilassen werde, da
> ich ihn nicht deuten kann.

Eingang f. Referenzschalter? Eine Bohrspindel braucht sowas nicht, eine 
Kugelumlaufspindel für einen Transportschlitten schon.

Zum Code fällt mir nur ein, daß es sich im Laufe der Zeit auszahlt, wenn 
man die Operationen des untersten Levels in Macros oder Unterprogramme 
mit sprechenden Namen auslagert, so wie es in delay_ms() ja auch gemacht 
wurde. Das spart viel Zeit bei der Fehlersuche.

Gruß Klaus (der soundsovielte)

von J. S. (jojos)


Lesenswert?

Vom Pin toggeln zur SM Ansteuerung mit korrekten Rampen ist es aber noch 
ein weiter Weg.

von Timbo2023 (timbo2023)


Lesenswert?

Ich dachte schon, ich muss PIN 5 nach ölen und an PIN 6 noch die Passung 
schleifen ...

von Rainer W. (rawi)


Lesenswert?

Timbo2023 schrieb:
> Ich habe zudem einen OPTO-Eingang, den ich einfach freilassen werde, da
> ich ihn nicht deuten kann.

Signale, die man nicht versteht, einfach offen zu lassen, ist keine 
Lösung. Guck in die Beschreibung/Datenblatt, welche Bewandtnis es damit 
hat.

von Wastl (hartundweichware)


Lesenswert?

Timbo2023 schrieb:
> Ich dachte schon, ich muss PIN 5 nach ölen und an PIN 6 noch die Passung
> schleifen ...

Und ich dachte schon dein Thread wäre kein Troll-Thread.

von Harald K. (kirnbichler)


Lesenswert?

Timbo2023 schrieb:
> Naja, ich habe aufgrund meiner akademisch-studierten Erfahrung die neuen
> Bundesländer wohl überschätzt im Mikrosteuerungs-Gebahren und den
> fundierten Antworten -

Offenkundig ein Troll.

Kann wegbleiben.

von Timbo2023 (timbo2023)


Lesenswert?

Ich dachte der Optoisolator wäre klima-abhängig, deshalb nutze ich den 
eigentlich nur Ende der Woche nach Laune ...

von Klaus S. (kseege)


Lesenswert?

Timbo2023 schrieb:
> Ich habe ein neues zu bewertendes Anliegen an Euch, nachfolgend seht Ihr
> ein Ausschnitt eines Programms zur Ansteuerung eines Schrittmotors.
>
> Könntet Ihr hier einmal kommentierend "rüber schauen"?

Wenn Du andere Kommentare als die aktuellen haben möchtest, solltest Du 
die Karten auf den Tisch legen. Im Moment sieht es für mich aus wie das 
großspurige Gehabe eines armen Schweins, das eine um zwei Nummern zu 
große Aufgabe aufgedrückt bekommen hat und nun zu verbergen sucht, daß 
es keine Ahnung hat, indem es irgenwas zusammenkopiertes zur Diskussion 
vorschlägt.
Das ist aber nur mein Eindruck, nicht die Behauptung, daß es tatsächlich 
so ist.

Die einzig harte Info war bisher "Schrittmotorsteuerung" und 
"STM32F103c6t8". Alles Andere sollen wir raten.

Also:
Welche HW soll verwendet werden.
Welche Entwicklungssoftware soll verwendet werden.
Welche Frequenzen sollen erreicht werden.
Wozu soll das Ganze dienen (damit wir sehen können, ob was fehlt!!!)

Gruß Klaus (der soundsovielte)

von Wilhelm M. (wimalopaan)


Lesenswert?

Timbo2023 schrieb:
> Könntet Ihr hier einmal kommentierend "rüber schauen"?

Timbo2023 schrieb:
> Naja, ich habe aufgrund meiner akademisch-studierten Erfahrung die neuen
> Bundesländer wohl überschätzt im Mikrosteuerungs-Gebahren und den
> fundierten Antworten -

Wieviel Sylvester hast Du denn stukkatiert?

Was mich jedoch am meisten interessieren würde: welche Hochschule war 
das denn? Und ich hoffe, dass Du dort keinen Abschluss erhalten hast.

von Stefan F. (Gast)


Lesenswert?

Timbo2023 schrieb:
> Eventuell könnten Sie aber noch einmal zu "macht man nicht", "macht
> man", als Beitragsform fundierter werden...

Schau dir mal die Quelltexte anderer Programmierer an, dann siehst du 
schon, was gemeint ist. Zum Beispiel: 
http://stefanfrings.de/stm32/stm32f1.html

Ich werde mir jedenfalls nicht die Mühe machen, deine Hex Codes in die 
Namen der Bits/Flags zu übersetzen.

von Timbo2023 (timbo2023)


Lesenswert?

Machen Sie sich, meine einfachen Geister'lein mal über meine Existenz 
und Stellung in der Gesellschaft keine Sorgen -


- Ficken Sie sich ins Knie -

von Stefan F. (Gast)


Lesenswert?

An die Moderation: Ich würde sagen, dass dieser Heini gesperrt werden 
sollte.

von Timbo2023 (timbo2023)


Lesenswert?


von Ingolf G. (frosch)


Lesenswert?

Das letzte Posting erklärt alles.
Welch eine arme Seele.
Traurig 😢

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.