- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 9 von 9

Thema: BDLC-Controller mit Bascom und ATMegaXX

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Zitat Zitat von oberallgeier Beitrag anzeigen
    Zeitkritisch? Ich erinnere mich nicht an viel Belege dafür, dass Bascom langsamen Maschinencode liefert. Soweit ich weiß, hat willa seinen Tricopter mit Bascom programmiert. Drei BLDC (ich hatte in diesen Thread eigentlich nur in deswegen geguckt, weil ich wissen wollte, was ein BDLC ist) regeln, drei Gyros, und etliches noch dazu . . . wie gesagt, soweit ich weiß in Bascom. Frag Willa einfach.

    Oooch - das ist ein übliches Argument, gerade von C-Anbetern. Hundert Maschinencyklen bei 20 MHz sind gerade erst 5 µs (MIKROsekunden). Und ein BLDC bei 30000 Umdrehungen pro Minute braucht für EINE Umdrehung schon 2 ms (MILLIsekunden). Das sind schon satte zwei (zweieinhalb) Größenordnungen dazwischen.
    Jap der Quellcode von dem Copter ist in Basic geschrieben (und das Teil fliegt nicht schlecht wie man in dem Video sieht )
    Mag sein das Bascom recht "großzügig" mit den Zyklen ist, aber ich denke für das was man mit Basic machen kann recht es locker(!) aus.
    Und im zweifelsfall, falls es auf Mikrosekunden ankommt kannst du immernoch mittendrin auf Assembler wechseln.
    Wie Oberallgeier schon geschrieben hat. Ein "normaler" Mega32 mit 16MHz braucht 6-7µs für einen Zyklus und das ist im Vergleich zu den Millisekunden / Sekunden in denen sich eine Motorsteuerung bewegt nichts.
    Und wie gesagt....du hast immernoch die Möglichkeit mit dem Wechsel zu Assembler
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.694
    Zitat Zitat von Kampi
    ... Ein "normaler" Mega32 mit 16MHz braucht 6-7µs für einen Zyklus ...
    ...Millisekunden / Sekunden in denen sich eine Motorsteuerung bewegt ...
    6 - 7µs - das sind rund 143 kHz bis 167 kHz. Richtig ist - bein 16MHz-Controller - egal welcher - dauert ein Zyklus 62,5 ns (NANOsekunden), die meisten Maschinenbefehle dauern einen, etliche zwei Zyklen, nur wenige Befehle haben drei oder vier Zyklen . . .

    Ich habe meine Motorregelung mit nem P I D bei normalen, kleinen Gleichstrommotoren auf 100 Hz. Die Motoren drehen selten über 700 Hz - das sind aber immerhin schon über 40000 Upm (vierzig tausend - pro Minute), deren Zeitkonstante ist ca. 8 ms (selbst gemessen). Und wenn ich mich richtig erinnere, dauert mein Regler für ZWEI Motoren weniger als 3 % CPU-Zeit bei nem 20 MHz-Controller. *ggg* nicht in Bascom - aber wie gesagt - die angebliche Trägheit von Bascom ist ne wenig ergiebige Diskussion.
    Ciao sagt der JoeamBerg

  3. #3
    Moderator Robotik Einstein Avatar von Kampi
    Registriert seit
    21.11.2009
    Ort
    Monheim, Nordrhein-Westfalen, Germany
    Alter
    35
    Beiträge
    3.501
    Blog-Einträge
    9
    Zitat Zitat von oberallgeier Beitrag anzeigen
    6 - 7µs - das sind rund 143 kHz bis 167 kHz. Richtig ist - bein 16MHz-Controller - egal welcher - dauert ein Zyklus 62,5 ns (NANOsekunden), die meisten Maschinenbefehle dauern einen, etliche zwei Zyklen, nur wenige Befehle haben drei oder vier Zyklen . . .
    Doof -.- Rechenfehler ^.^
    Schaut ruhig mal auf meiner Homepage vorbei :
    http://kampis-elektroecke.de

    Oder folge mir auf Google+:
    Daniel Kampert

    Es gibt 10 Arten von Menschen. Die einen können Binär, die anderen nicht.

    Gruß
    Daniel

  4. #4
    Hallo,

    ich bin auch sehr Interessiert daran einen BLDC Controller in Bascom zu Programmieren.
    Bin seit einiger Zeit am rumprobieren. Hardware mäßig müsste soweit klar sein. Ist so wie das BL-CTRL von mikrocopter.de, ist warscheinlich dem ein oder anderen bekannt.
    Der Code dazu ist in C. und da hab ich nicht so den durchblick. Hab schon mal versucht die Interrupt Routine für Sensorlosen betrieb in Bascom um zu Basteln aber ohne Erfolg. Gehört warscheinlich doch noch mehr dazu.

    Den Motor starten und laufen zulassen ist ja kein problem. Abgesehen davon das er am angünstigten Punkt komutiert und somit viel zu viel Strom benötigt. Und das er eben nicht auf Last reagieren kann, weil sich ja dafür das Timing anpassen muss.

    Es scheint mir auch so als ob die Software von Mikrocopter.de gar keinen Timer für Komutierung verwendet sondern einfach nur den Interrupt vom Analog Komperator. Jedoch in den AppNotes AVR444 wird der Timer1 und auch schein nur der ADC anstelle des AC.

    Vllt findet sich ja gemeinsam ein Lösung.

    Mfg

Ähnliche Themen

  1. Atmegaxx Crashkurs und wichtiges
    Von blenderkid im Forum Robby RP6
    Antworten: 20
    Letzter Beitrag: 24.05.2008, 11:35
  2. externes EEPROM an AtmegaXX ?
    Von jmayer im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 11.04.2007, 13:18
  3. AtmegaXX, SPICE Simulation für Multisim?
    Von mr.burns im Forum AVR Hardwarethemen
    Antworten: 1
    Letzter Beitrag: 11.12.2006, 20:19
  4. Dual-Controller LCD mit Bascom?
    Von DarkNet im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 15
    Letzter Beitrag: 14.03.2006, 22:20
  5. [ERLEDIGT] Controller als I2C Slave mit Bascom
    Von Newbie im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 41
    Letzter Beitrag: 04.01.2005, 23:12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress