SysTaskDelay und Hintergrundprogramme

Willkommen!

Wenn du im Nexave-Forum mitmachen möchtest, schreib an community@nexave.de. Wir haben die Registrierungsfunktion in unserem Diskussionsforum nämlich deaktiviert, weil sich praktisch nur noch Spammer und Werbebots registriert haben. Per E-Mail sind wir dir gern behilflich, einen Account anzulegen.
  • Hallo,


    Ich schreibe an einem Programm, dass SysTaskDelay verwendet. Pockettunes spielt ohne Probleme weiter, Audible spielt 2 bis 3 Sekunden und dann ist Pause bis die Verzögerung vorbei ist.
    Sollte ich jetzt auf SysTaskDelay verzichten oder keine Rücksicht auf fehlerhafte(?) Programme nehmen.


    Gruß,
    Hardy.

  • Wofür benutzt du die Funktion denn? Um Strom zu sparen?


    An sich würde ich schon sagen, dass die gängigsten Programme nicht behindert werden sollten, auch wenn ich das Prog nicht kenne und selber PocketTunes benutze.


    Kannst ja mal Versuchen rauszufinden ob die Funktion bei PocketTuner nen Fehler zurückgibt, PocketTunes das also irgendwie blockiert.


  • war mir schon klar, dass audible nicht klappte. hab's jetzt mal runtergeladen und bei ein paar programmen (vorrangig spiele) probiert: die scheinen alle nicht den befehl zu benutzen, audible spielt weiter.
    oh, dass man die funktion verwenden soll wusste ich gar nicht. ich schreib grad selber an nem spiel und rufe einfach die events ab bis ich den nächsten frame zeichne. dürfte eigentlich bis auf die batterie keinen nachteil haben, ich weiss ja aber nicht wofür du das jetzt genau brauchst.

    • Offizieller Beitrag

    Na SysTaskDelay ist Pflicht, wenn man warten muß und es nicht auf Events ist. Selbst bei Spielen sollte man sich überlegen, ob SysTaskDelay(1) nicht besser als pollen ist. Wenn der Prozessor ständig am rödeln ist, sinkt die Batterielaufzeit rapide.

  • Zitat

    Pass evtWaitForever as the timeout in most instances. When running on the device, this makes the CPU go into doze mode until the user provides input. For applications that do animation, pass a timeout value greater than or equal to zero.


    das stand in der palm api zur EvtGetEvent Funktion. ist das nich auch ne gute lösung? ich denk mir das nimmt sich nicht viel. besonders bei längeren zeiten finde ich es besser wenn das system nicht blockiert.

  • Hallo,


    EvtWaitForever und SysTaskDelay haben zwei vollkommen andere Zielsetzungen. Mit SysTaskdelay erzeugst du eine Warteschleife, in der NICHTS passiert. Auch kein Event stoppt die Warteschleife, diese werden erst danach abgearbeitet.
    In dem Programm wird für x Sekunden etwas angezeigt, und es läuft gleichzeitig ein Sekundenzähler mit.


    Außerdem: EvtWaitForever ist auch eine Selbstverständlichkeit, wenn man nicht das Nilevent braucht.


    Gruß,
    Hardy.