- 12V Akku mit 280 Ah bauen         
Ergebnis 21 bis 30 von 45

Thema: pthread-Task als Methode einer C++ Klasse?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #24
    HaWe
    Gast
    vielen Dank, dass ich mehere Einzelfunktionen einsparen will ist kar, das war ja meine Absicht, dennoch sehe ich jetzt schon ein wenig klarer.
    Dennoch ist das mit den doppelten Pointern un dem "casting" schon seeehr kompliziert...
    Außerdem ist mir nicht klar, wie jetzt genau die Verknüpfung erfolgen muss von der aufrufenden simplen API Funktion bis hin zum Task:

    der vereinfachende Wrapper
    Code:
    inline void RotatePIDtoTarget(char port, long Target, float RotatSpeed) {
       RotatePID(port, Target, RotatSpeed, false);
       Wait(1);
    }
    ruft auf die ein wenig komplexere Interface-Funktion inkl. dem Target-Haltemodus:
    Code:
    RotatePID(port, Target, RotatSpeed, false);

    und hier wird nach Setzen der PID Laufzeit-Variablen der PID Task gestartet:
    Code:
    safecall void RotatePID(char port, long Target, float RotatSpeed, char cont) {
      if (port==OUT_A) {
    
        //...
        //...
    
        PID_A.runstate=1;                // set runstate: PID active
    
        // custom init PID_A
        PID_A.target =Target;                   // assign target
        PID_A.tarpwm =RotatSpeed;               // assign rotation speed
        PID_A.cont=cont;                        // cont vs. hit once
    
        // Reset PID control defaults
        PID_A.outp    =0;                // PID control output value
        PID_A.maxout  =100;              // absolute max possible output (max pwr)
        PID_A.read    =0;                // current reading
        PID_A.err     =0;                // current error
        PID_A.integr  =0;                // integral of errors
        PID_A.speed   =0;                // current speed
    
    
        start task_PID_A;
      }
    
      else
      if (port==OUT_B) {
      //...
    statt der if-Schleifen für jeden Motor käme jetzt dein expliziter PID-Aufruf mit Motornummer als Parameter -
    wie würde es aber denn heißen müssen, wenn ich den PID pthread task innerhalb deiner neuen Struktur starten will?
    Geändert von HaWe (26.09.2016 um 17:44 Uhr)

Ähnliche Themen

  1. Abgeleitete Klasse = konkrete Klasse?
    Von vixo im Forum Software, Algorithmen und KI
    Antworten: 4
    Letzter Beitrag: 15.09.2016, 16:02
  2. Antworten: 4
    Letzter Beitrag: 02.04.2016, 14:23
  3. Task motionControl() mit der M32
    Von inka im Forum Robby RP6
    Antworten: 8
    Letzter Beitrag: 10.04.2013, 06:40
  4. Gegen-EMK-Methode
    Von MatlStg im Forum Motoren
    Antworten: 7
    Letzter Beitrag: 11.02.2008, 17:07
  5. Was ist die besser Methode? (ADC auswerten)
    Von quantum im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 3
    Letzter Beitrag: 28.01.2007, 12:57

Berechtigungen

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

Solar Speicher und Akkus Tests