Guten Abend alle miteinander, Ich bin grade dabei mich in die Programmierung auf dem ESP reinzufuchsen und komm eigtl. auch ganz gut damit klar. Ein Element bereitet mir aber etwas Kopfzerbrechen: Jede Applikation bastelt irgendwas mit procTask rum, aber macht, dann in der zugehörigen Funktion oft garnichts (oder nur ein warten). Das Manual sagt zu system_os_task nur ganz platt: "Set up tasks" . Das ganze scheint irgendwie auf eine asynchrone Verarbeitung rauszulaufen (man kann mit system_os_post "messages" an task senden). Irgendwie wird aber an jedes Stückchen der API trotzdem gesondert ein Callback gehängt. Irgendwie ist das also für alle offensichtlich nur ich blick das nicht. Was mache ich also mit so einem Task ? Läuft der als Endlosschleife oder wird der durch irgendwelche events aktiv ? Muss ich so einen Task basteln damit überhaupt etwas läuft ? Danke für eure Antworten, Max
Schau mal hier, da wurden gerade ein paar Grundlagen erklärt : http://hackaday.com/2015/03/18/how-to-directly-program-an-inexpensive-esp8266-wifi-module/
Auch hier:
1 | static void ICACHE_FLASH_ATTR procTask(os_event_t *events) |
2 | {
|
3 | system_os_post(procTaskPrio, 0, 0 ); |
4 | printf( "Idle Task\n" ); |
5 | }
|
6 | |
7 | |
8 | void user_init(void) |
9 | {
|
10 | system_os_task(procTask, procTaskPrio, procTaskQueue, procTaskQueueLen); |
11 | system_os_post(procTaskPrio, 0, 0 ); |
12 | }
|
Also anscheinend läuft der Task einmal durch wenn er ein event kriegt (sonst würde "system_os_post(procTaskPrio, 0, 0 );" im task selber wenig sinn geben). Bleibt die Frage: Hat man immer nur einen task (weil ich sehe keine wirkliche methode mehrere Tasks zu unterscheiden)? Läuft der Task auch an wenn im System was passiert ?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.