- Megjött a Razer DeathAdder egerek legfrissebb nemzedéke
- Ismét minimalista miditorony érkezett a Fractal Design műhelyéből
- Alakul a SpaceX Starlink európai ellenfele
- Digital Fingerprinting: Így buktat le a böngésződ a neten - Tech Percek #18
- Prezentálta PCI Express 6.0-s SSD-vezérlőjét a Silicon Motion
- Fejhallgató erősítő és DAC topik
- Vezetékes FEJhallgatók
- Milyen TV-t vegyek?
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- TCL LCD és LED TV-k
- HiFi műszaki szemmel - sztereó hangrendszerek
- Azonnali VGA-s kérdések órája
- Milyen videókártyát?
- Amazon Kindle
- Elkezdtek szállingózni az Arctic P Pro sorozatú ventilátorai
-
PROHARDVER!
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Janos250
őstag
Erre mindenki mást javasol.
Az én véleményem:
Elsődlegesen a WiFi használata. Szerverre van többféle verzió a neten, mind kicsit más.
Én nem azokat használom, hanem az alapot, tömören a lényege:WiFiServer server(80);
WiFiClient client ;A loopban pedig a lényeg:
client = server.available();
if (client.available()) { // if there's bytes to read from the client,
char c = client.read();Természetesen még jönnek hozzá a sallangok, például, hogy vége akkor van, ha két cr/lf jön egymásután.
client.println(protocolHeader);
client.println(httpHeader);
client.print(body01);A végén:
client.stop();
Ezt így alapszinten használom. Ha valamelyik kész httpserver kezelőt használod, az egyszerűbb, de nekem ez kényelmes, és rugalmas.
Olyasmi, mint a PHP, hogy írod azt, amit a WEB lapodra akarsz tenni.Aztán ott van az OS, a freeRTOS, amire sokan mondják, hogy igazából nem is OS, mert pl. nincsenek benne userek.
Ezzel az esetek zömében nem kell foglalkozni, nem kell, hogy a user lássa.
Ha párhuzamosan akarsz taskokat futtatni, akkor vagy a szabványos C++ módon teszed, és az OS eldönti, melyik magra teszi:thread szal1(helloWorld1);
thread szal2(helloWorld2);
szal1.join();
szal2.join();A join akkor kell, ha be kell várni az adott szál befejezését,
vagy kreálsz neki külön taskot, például:
xTaskCreate(
readTempr,
"homersekletOlvas",
5000,
NULL,
6,
&homeroTaskHandle
);Én ezzel például olvasom a hőmérsékleteket mindentől függetlenül a "readTempr" függvénnyel, és belerakom globális változókba, ezért nincs szükség paraméterekre, azaz NULL nullpointer. Itt szokott egy kis gubanc lenni annak, aki először használja, mert ide a paraméterekre (pl töm, struktúra) mutató pointert írunk, de az xTaskCreate void típusú pointert kér, ezért kényszerítéssel voidosítani kell, majd a függvényben ismét kényszeríteni az adott típusra. Ha el akarod dönteni, hogy melyik magra tedd, akkor azt is megadhatod. Én például szeretem az ilyen mellékes dolgokat a 0-ás magra tenni, mert ott fut magas prioritással a WiFi kezelés, az üresjáratokban pedig az én "mellékes" függvényeim, egymástól függetlenül. Például amit az előbb írtam, abban végtelen ciklus van. Beolvassa a hőmérsékleteket, beleteszi globális változóba, vár egy időt, majd újra olvas. Ilyen esetben a wait az nem tényleges várakozás, hanem a többi tasknak adja át a vezérlést. Mivel a hőmérsékletek byte-ban vannak, nem kell semmiféle zárás, hogy ne akkor olvasson az egyik, amikor már az adatok felét átírta a másik, és akkor hülyeséget kapjon, de ha több byte-os az adat, akkor kizárás szükséges..
Aztán célszerű a rengeteg hardver perifériát kipróbálni.
Új hozzászólás Aktív témák
- Hp USB-C/Thunderbolt 3 dokkolók: USB-C Universal, G2, G4, G5, Hp Elite/Zbook- Thunderbolt 4 G4
- Dell D6000 univerzális dokkoló USB-C/ USB-A, DisplayLink & Dell WD15 (K17A) USB-C + 130-180W töltő
- Fotó állvány eladó
- Samsung Galaxy Watch Ultra
- ÁRGARANCIA! Épített KomPhone Ryzen 5 7500F 32/64GB DDR5 RTX 5060 8GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest