Keresés

Hirdetés

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

  • Danex

    addikt

    válasz dave0825 #1221 üzenetére

    Én sima decimálként kezeltem az IR kódokat, am az ismételt megnyomást én úgy küszöböltem ki, hogy az "irrecv.resume();" elé raktam egy delay-t (750, de szerintem kevesebb is megteheti) így elég ritka lett a duplikálás.

  • softguner

    csendes tag

    válasz dave0825 #1221 üzenetére

    Nem tudom, hogy mire használod az infrát, de én így oldottam meg, hogy csak 1x hajtsa végre az utasításokat.

    results.value=0;
    if (irrecv.decode(&results))
    {
    irrecv.resume();
    }
    Serial.println("Infra value: ");
    Serial.println(results.value);

    if (serialon != 0 )
    {
    switch (results.value)
    {
    case 553536955:
    radio.setStandByOn();
    if (playstate == 1 && radioon == 0)
    {
    command(0x0E, 0x00);
    Serial.println("Pause");
    playstate=0;
    results.value=0;
    myGLCD.clrScr();
    myGLCD.print("PAUSE", 28, 20);
    myGLCD.update();
    }
    else
    {
    command(0x0D, 0x00);
    Serial.println("Play");
    playstate = 1;
    results.value=0;
    myGLCD.clrScr();
    myGLCD.print("PLAY", 30, 20);
    myGLCD.update();
    }
    radioon = 0;

    break;

    Mindig nullára állítottam az infra => results.value változót, és így mindig csak 1x fut le a kívánt programrész, a távirányító megnyomásakor.

    Szerintem lemaradtam, de te mire használod az infrát? Én egy mp3 lejátszót és egy tea5767-es rádiót kapcsolok vele. Nálam ez a megoldás működik, lehet nálad van valami speciális dolog. Itt pl azért kell így megoldanom, mert a play/pause gomb egy és ugyan az, és ha már épp megy a lejátszás, akkor értelemszerűen pause jön a következő gombnyomásra, ellenben play kivéve ha a rádió üzemelt éppen, mert akkor így is úgy is play lesz.

    [ Szerkesztve ]

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