Keresés

Új hozzászólás Aktív témák

  • Aryes

    nagyúr

    válasz tibi-d #19213 üzenetére

    Talán megvan.
    A kiértékelés részt (if (NumString.length()...) előre tenném, és returnnel lépnék ki belőle, ugyanis a számbevitel rész most nem tartalmaz vizsgálatot az idő lejártára vonatkozólag, időn túl is elfogad még egy billentyű leütést.
    Szerintem így a várt módon fog működni:
    void Numpad() {
    int I;
    float F;

    if (NumString.length() > 0 && (millis() - KeyTimer) > 2000) {
    I = NumString.toInt();
    NumInteger = I * Inv;
    F = NumString.toFloat();
    NumFloat = F * Flo;
    NumString = "";
    Inv = 1;
    Flo = 1.0;
    return;
    }

    //Billentyű leütésre várás
    key = keypad.getKey();
    //Leütött billentyű kiértékelése
    if (key) {
    KeyTimer = millis();
    if (key == '#' && Inv == 1) {
    Inv = -1;
    Flo = -1.0;

    }
    if (key >= '0' && key <= '9' || key == '.') {
    NumString += key;

    }
    }
    }

Új hozzászólás Aktív témák

Hirdetés