- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 4 von 4

Thema: externen timer auslesen (74hc193) und differenz berrechnen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte Avatar von sternst
    Registriert seit
    07.07.2008
    Beiträge
    672
    Eines vorweg:
    Code:
    ISR, 1Khz {
    ...
    return diff;
    }
    Hä???


    Nun zum Optimieren:

    Code:
    static int old;                // alter Zählerstand
    int new, dir, diff;
    Warum sind das alles 16-Bit-Variablen, wo du doch nur mit 4 Bit rechnest und du im Text sogar explizit die 8-Bit-Variante int8_t erwähnst?


    Code:
    if (new > old) {
       diff = new - old;
       dir = 1;
    }
    else {
       diff = old - new;
       dir = -1;
    }
    
    if (diff > 8) {
       diff = (16 - diff);
       dir *= -1;
    }
    
    diff *= dir;
    Das würde ich so schreiben:
    Code:
    diff = new - old;
    if (diff > 8)
        diff -= 16;
    if (diff < -8)
        diff += 16;
    MfG
    Stefan

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    19.03.2011
    Ort
    Berlin Moabit
    Beiträge
    14
    oooopsieeee... 2 mal geposted!

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    19.03.2011
    Ort
    Berlin Moabit
    Beiträge
    14
    Super Danke Stefan!

    Hatte nur in meinem Beitrag int geschrieben. Weiß nicht warum.
    in meinem Program war natürlich alles int8_t!

    Macht man solche "Kürzungen" auch mit boolscher algebra oder mit scharfem Verstand und Erfahrung?

    Schöne Woche! Tom

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress