Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
A gyógyító tekintet...
A hozzászólás módosítva: Feb 28, 2023
Nemrégen használom az IDE 2.0.3 változatát.Felkínál információs táblákat,ha cursor alulról közelít egy sorhoz,könnyen takarja el pont amit írni akarok.Kétségtelen néha hasznos ,de nem lehet ezt kitiltani,vagy legalább egy semleges helyre tegye?A másik gondom,ha írok valamit a cursor után beteszi amivel szerinte be kellene fejeznem.Ha mindkettő benne marad oldalas hibaüzenet jöhet,ami nem mindig csak pont erre utal.Ezt is jó lenne kikapcsolni.
Ezzel kapcsolatban még egy gondom van.Sokszor írnék egy sorba több rövidebb utasítást,sokkal kevesebb sor lenne a végén,de az automata formázásnál minden utasítást új sorba ír (a régi ezt nem tette).Ezt vajon ki lehet kapcsolni?
Ha ezt letöltöd, átírod és beteszed a C:\Users\Felhasználód\.arduinoIde mappába, akkor utána ez alapján fog formázni. Hogy hogyan kell ezt kikapcsolni benne (melyik beállítás az), azt nem tudom megmondani.
Egyébként tényleg nem lesz túl olvasható a kód, ha egy sorba több utasítás is van és a sorok nem kérnek enni, de ezt mindenki el tudja magának dönteni, hogy mit szeret. Mivel itt úgyis az elektronika a lényeg és nem hardcore programozók és szoftverfejlesztők vannak, így szerintem elnézhető, ha nem tiszta a kód, aztán tapasztalati úton úgyis ki fog alakulni a jó gyakorlat. @Skori nem ismerem a LED{123}ON makróidat, de a tartalmától függően ezen lehet még szépíteni, hogy megszabaduljunk minden felesleges sortöréstől
Nálam is cél, hogy ne legyen nagyon sok oldalnyi egy program, és ezért logikailag összetartozó utasításokat szoktam egy sorba tenni. Az viszont nem cél, hogy ettől olvashatatlan legyen a kód, ezért nálam a kommentek mennyisége többnyire összemérhető a programkód méretével, hogy akár évekkel később is könnyen, probléma nélkül bele tudjak nyúlni, módosítani, vagy átvenni belőle részleteket egy másik programba. A kommentek gyorsan eszembe juttatják, hogy mi is volt a koncepció abban a programkódban, hogy miért olyan amilyen, és nem kell újra teljes mértékben kielemezni a korábban már megoldott problémát.
Tehát ha mondjuk egy beállításhoz 3 regisztert kell átírni, akkor az mehet egy sorba, de ott a komment is, hogy ez a sor mit csinál... Számomra a kód egészében így áttekinthetőbb, mint hosszan külön sorokban.
Amúgy sokszor kényelmes makrókat használni. Pl:
BluePill ledje: #define LEDON GPIOC->regs->BRR = 1<<13 #define LEDOFF GPIOC->regs->BSRR = 1<<13 A hozzászólás módosítva: Márc 10, 2023
A munkám során megszoktam, hogy C++ kódban tilos a makró, és egy sorba egy utasítás kerülhet.
Műkedvelő vagyok csak saját magamnak írok programokat és az alapvető utasításokat használom,amikből sokat akár egy sorba írhatok,pontosan ahogy Skori leírta.Nyílván egy profi jót derülne rajta és sokkal elegánsabban tudná megírni.
Ezen felbátorodva lenne egy kérdésem,ha már a macro szóba kerrült.Esp32-t használok 1307 RTC-vel RTClib könyvtárral,amikor Nano-t használtam abban a könyvtárban get/set utasításokkal minden idő adathoz könnyen hozzáfértem.Amit most használok csak ezeket találtam: rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); rtc.adjust(DateTime(2023, 3, 8, 14, 0, 0)); Az utóbbit használva jól működik,de csak a teljes idő adatot tudom átírni egyszerre.Az NTP idő megvan és néha szeretném az RTC perceket korrigálni,valamint ha bármi miatt párat át kellene írni.A másik fajta módszert még nem használtam,ezzel lehetne csak egy adatot átírni? A hozzászólás módosítva: Márc 10, 2023
Vissza kell frissíteni régi verzióra. Nekem sem jött be a legújabb.
Az újat külön töltöttem le,úgy tűnik a régi függelenül megmaradt,nem szerettem volna ha a régi programokat nem fordítja.Az újnak jobban tettszik a könyvtár kezelése,meg a képernyő választás.
A debug rész nem tudom mit csinál,bizony jó lenne tudni feltöltés nélkül hogyan működik a program.
Szerintem az óra átírásnál nem szerencsés csak egy tagot írni egyszerre, mert ha pont mondjuk átforduláskor írod, akkor nem az lesz a végeredmény, mint szeretnéd. Persze lehet ez ellen védeni a rendszert, de ésszerűbb, ha az a művelet, hogy egy tranzakcióban mindent átírunk. Akkor tuti az kerül be amire a programozó gondolt. Na jó, inkább ami paraméterként át van adva, ez sajnos nem mindig egyezik azzal amire a programozó gondolt
Végül megbékélek vele,amúgy is az NTP-ről korrigálok ott lehet tudni valós-e az idő és meg lehet adni pontosan mikor tegye.Energia,hőmérséklet,stb adatokat szeretnék naplózni és az RTC-ben jobban bízok mint a Wifiben.
Bele tettem a setup-ba az RTC-NTP idő korrekciót,csak akkor helyesbíti az RTC-t ,ha megfelelő a Wifi kapcsolat,ha nem jó továbbmegy,de jelzi a monitoron.Később úgy is valószínüleg naponta újraindítom a szenzorokkal együtt.
sziasztok!
Szeretnék egy minimális energiamegtakarítást elérni atmega328 MCU-val. Olvasom, hogy van ez a sleep mode (
Aztán van ez az (
Ezek közt mi a különbség? A lowPowerek külön könyvtárak és külön kell letölteni őket? Ezeket a fordító könyvtárkezelőjében miért nem találom? Lehetséges 9-es pinről is feléleszteni energiatakarékos módból, vagy csak a dedikált interrupt 1-2 lábakon? A loop az energiamegtakarításkor i folyamatosan fut, vagy ilyenkor csak az interrupt lábat figyeli és ha azon bejön a megszakítás akkor feléled? Nagyon köszönöm ha tudsz segíteni ennek a megértésében,
Üdv Mindenkinek!
Számomra elég nagy problémával küzdök... Adott jelen esetben egy ESP8266, amire wifin keresztül szeretném feltölteni az új programot az IDE-n keresztül. Ez működik is az arduinoOTA segítségével... viszont nekem az esp és a laptop két különböző hálózaton lenne. Erre tudtok megoldást javasolni, vagy valami konkrétat? Sajnos belefáradtam a keresgélésekbe és olvasásokba, mivel ez az internetes világ kicsit távol áll tőlem. Igyekszem keresgélni, de hátha nem kellene újra kitalálnom valami feltalált dolgot. Köszönöm előre is!
Fogadjunk, hogy nem is Arduinoról van szó, és nem is Arduino környezetben programozod. Ha ez igaz, nagyon rossz helyen kérdezel. Kapásból mondtam volna, hogy a 13-as lábon levő LED-et kapd le, meg hogy a soros port átalakító is eszi az áramot folyamatosan, de látom, hogy te itt avr/sleep.h-kat includolsz, szóval teljesen más dolgoról van szó. Másik: millió féle library található a neten, azonos néven, verziószámmal, stb. Szóval ezek alapján meghatározni, hogy mit csinálhat egy ismeretlen könyvtár? Elég nehézkes. Van külön AVR-es téma is!
Elnézést, lehet én értelmeztem félre ezt az egészet.
Arduinoval megépítettem egy áramkört, amibe végül egy atmega328-at építettem az arduino helyett és jogosan jelzed, hogy az akkor nem arduino. Csak azzal kezdtem el leprogramozni a célt és anno ugyanezen áramkörrel kapcsolatban kérdeztem itt, ezért gondoltam egyből erre a topikra. De akkor... egyébként a környezet arduino, amiket látsz, azok pedig próbálkozások a keresgélésből, de mint említettem, nagyon nem vagyok nyomon. Az avr/sleep.h akkor nem is működik arduinon? A hozzászólás módosítva: Márc 10, 2023
Akkor hogy is? Ha külön háló, és nem látják egymást?
Viszont, HA mindkét háló látja az internetet (vagy mindkettő háló azonos router mögött van), akkor ipcím szerint (már ha publikus) láthatják egymást, így lehetséges... --- Egyébként meg hányszor is kell szoftvert frissíteni? Meddig tart - pláne ha laptop - odabattyogni, feltölteni... - már ha nem a földgömb másik végén van a cucc - Engem ez a lehetőség nem hozott lázba, pláne hogy kinyissam internet felé, és Mari néni távolról frissítse az időjárás állomásomat jelszó ide, vagy oda (mi lehet pl terheléses támadásnál) A hozzászólás módosítva: Márc 10, 2023
Egy részről jogos a felvetésed, viszont nem igazán értetted a problémámat. A részletek most nem fontosak, viszont az igen, hogy fizikailag én keleten az ESP meg mondjuk nyugaton van. Ezt a kapcsolatot nem tudom mi hidalja át és hogyan.
Amit mondasz, azt még értem is, meg működik is itthon... Viszont nekem a két különböző hálózat közti elérés lenne a kérdés. A szoftver frissítés most egy ideig elég sűrű lenne, mire kialakul a gyakorlatban a tényleges formája, így ezért volna rá szükségem.
Pont a részleteken múlik... pont azon hogy mi hidalja át/össze a két hálót, merthogy ez a kérdésed...
Ha mindkét cuccos lát internetet... akkor a nyugaton lévő cuccosnak az internet routerét meg kell oldani, hogy a szolgáltatótól publikus IP-t kapjon (kérésre általában ingyé megoldják, pl nálam DIGI), aztán meg kell oldani hogy tudomást szerezz erről a publikus IP-ről, valaki bediktálja neked telefonon , vagy csinálsz dyndns-t. Aztán ezzzel az ipcímmel OTÁ-zhatsz. Persze átlőheted akármilyen rádión is, csak akkor oda ugye kell valami fordító interfész, vagyis pont oda lyukadunk ki, hogy neked fel kell mérni a lehetőségedet, mivel hidalod át a távolságot...
Na látod, már egyet beszélünk. Pl. nálad van az esp és én itthonról akarok neked egy új progit feltölteni rá... Nálad is van wifi, nálam is van wifi, csak a kettő közti elérés az ami nekem nem tiszta. Az a dyndns micsoda, hogyan működik, hogyan lehet megcsinálni?
Feltöltöd egy tárhelyre, az esp időnként ránéz, ha van új firm frissít.
Az is jó amit lalca mond , még talán biztonságosabb is interneten át.
Dyndns a működése: A túloldalad egy (fizetős/ingyenes) szolgáltatóra rendszeresen bejelentkezik, közli a saját ipcímét. A szolgáltatótól kapsz egy fix (dns)nevet pl zosza18.dyndns.hu Ha te el akarod érni a túloldalt, akkor ipcím helyett a dns névre hivatkozol, a rendszer megoldja hogy emögött (a változó ipcím ellenére is) a hálózati csomagok ott landoljanak. Szinte minden router tud dyndns-re bejelentkezni, beregisztrálni a változó ipcímet, de ezek általában fizetősek, az ingyenesek java meg előírja hogy böngészőből IS havonta be kell jelentkezned.
Még az se volna nagy gond, hogy fizetős csak működjön a dolog. Nem ismerem sajnos ezt a megoldást amúgy, de olvasgatok keményen...
dyndns hátránya: kell hozzá kliens szoftvert futtatni, ami megcsinálja a változó ipcím frissítését.
Fizetős: A dyndns.org-hoz (vagy más szolgáltatóhoz) a klienst szokták tudni a routerek, ott be kell állítani, és kész Ha nem tudja a router akkor a kliens szoftvert futtathatod pl (állandóan működő) PC-n, vagy a saját ESP mikrogépeden (erőforrást igényel) 1. regisztrálsz a dyndns.org -on, ott beállítod a kért dns nevet, ezt beállítod a túloldali routerban, ezután ezzel a dns névvel hivatkozhatsz a távoli eszközödre. 2. regisztrálsz a dyndns.hu -ra, sajnos ehhez csak PC kliens progit láttam, de lehet megoldható a másik mintájára a mikrogépen is. 3. keresel más dyndns szolgáltatót )) dyndns esetén a távoli internet szolgáltatótól kell kérni a publikus ipcímet. 4. jut eszembe... horror áron az ottani internet szolgáltatótól lehet kérni fix publikus ipcímet, akkor nem kell dyndns sem, semmi extra kliensprogram, e fix ipcímre hivatkozol és kész Persze a túloldali routeren a bejovő kapcsolatoknál a szükséges portokat át kell irányítanod az ESP-re... A hozzászólás módosítva: Márc 10, 2023
Dehogynem működik az avr/sleep. Jön az avr gcc fordítóval együtt. Az Arduino pedig ezt használja. Vannak libek is fölé.
Többféleképpen tud aludni, mindegyik módban más a fogyasztása, és másképpen lehet felébreszteni. Ébredhet resetre, interrruptra, pin change interruptra (bármelyik lábon), I2C slave eszközként a buszon megjelenő címére, belső timer lejárásra, stb. Bővebben: Link
Ha meg tudsz barátkozni a Mongoose OS-sel (IOT firmware fejlesztői környezet), akkor próbálkozz azzal. Annak van egy publikus szervere, ami pont az OTA letöltést támogatja. ESP8266 NodeMCU kártyával próbáltam ki valamikor.
|
Bejelentkezés
Hirdetés |