Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Be raktam a teljes kodot amiben a forditó kiborul (void) érték vissza hivás!
Bővebben: Link
Valamilyen hibás magyarra fordítás eredménye ez a "(void) érték visszahívás", ilyesmi nincs abban a két hibaüzenetben, amit küldtél. Az első üzenet a lényeg, a második csak az mutatná meg, hogy hol történt a hiba. Az, hogy annak a nyílnak a hegye így, normál szövegként idemásolva az üzenetedet a "void" szóra mutat, nincs jelentősége. Ezzel kell csak foglalkozni:
"void_hivas1:15:10: error: too few arguments to function 'void test(int*, int*)'" Azért kérdeztem, érted-e, mert szerintem meg sem próbáltad lefordítani. Ez a "too few arguments" szó szerint azt jelenti, hogy egy függvény fejében túl kevés argumentumot (paramétert) adtál meg annak hívásakor. Vagyis ez az alábbi sor nem jó a hívásnál, mert itt egyetlen paramétert adsz meg, hogy átadásra kerüljön a "test" függvénynek, nem kettőt: test(&i); Ha működő kódot szeretnél az általad mutatott "void test(int *a, int *b);" függvény hívására, akkor az így fog kinézni: test(&i, &j); Ehhez persze kell, hogy létezzen a Setup függvényben egy második integer változó is, vagyis az "int i;" definíció után kell egy "int j;" is. (A "j" betűt csak azért használtam, mert az következik az "i" után, ennek nincs jelentősége.) Megadhatok egy működő kódot, de úgy nem biztos, hogy tanulsz belőle, el kellene tudnod mondani, hogy végül is mit szeretnél megvalósítani. Pusztán példakódnak néz ez ki, egy kísérletnek arra, hogy le tudod-e fordítani, de akkor meg jó lenne előtte még alapozni egy kicsit, különben nem fog menni. Ehhez jó pár magyar nyelvű, online, ingyenes C programozási útmutató is van az Interneten, könnyű rájuk találni. Tehát:
Így le kell fordulnia, bár a két változónak illik értéket adni, mielőtt bármit is csinálunk velük, így véletlenszerű a tartalmuk, a C nyelv nem állít be számukra alapértéket, pl. nullát. A hozzászólás módosítva: Ápr 15, 2026
A hibaüzenetekből nem mindig derül ki a legmélyebben levő probléma. Ez a bővebben bemutatott kód elsősorban azért rossz, mert egy függvénydefiníció belsejébe beleraktál egy másik függvénydefiníciót. Ilyen szintaxis a C-ben nem létezik. Az encRotationToValue()-t a loop() fölé kell rakni önálló függvényként, és a loop()-ból meghívni a megfelelő paraméterekkel.
Valamint a cím szerint átadott változóknak is hibásan próbálod az értékét megváltoztatni (pl. "*value=" helyett "value=") - nyilván azért született a másik program, a tesztprogramod, mert nem tudtad lefordíthatóra összehozni, és ezért is kísérletezel az encRotationToValue() függvény elhelyezésével. Lásd a többi hozzászólásomban, amiket írtam. A hozzászólás módosítva: Ápr 15, 2026
Szoval ahogy sejtetem esp32 könyvtárban valami geb@sz probáltam v2xx és a 3xx is de arduino uno nincs probléma forditáskor!
------- -arduino uno hibba nélkül lefordul! -esp32 hibba nélkül lefordul! void test(int *a, long *b) ------- -arduino uno hibba nélkül lefordul! -esp32 hibbát ad ! void test(int *a =12345, long *b=987654) esp32 hibba.......... .....void_vissza3:4:40: error: invalid conversion from 'int' to 'int*' [-fpermissive] void test(int *a =12345, long *b=987654) ^ void_vissza3:4:40: error: invalid conversion from 'int' to 'long int*' [-fpermissive] exit status 1 invalid conversion from 'int' to 'int*' [-fpermissive] esp32 hibba..........
Ezt le lehet írni, ha nem is C-ben, de C++-ban, de semmi értelme abból a szempontból, amire használni akarod (a pointereknek ad alapértéket): "void test(int *a =12345, long *b=987654)" Mindegy, hogy jön rá hibaüzenet vagy sem.
Az eredeti függvénydefiníció a jó, ami most ki van kommentezve. Aztán a függvény hasában adhatsz értéket a változóknak, most már látszik, hogy ezt akarod.
Nem folytatom.
Bocs, csak az int-re koncentráltam, előzőleg az volt a példádban. Helyesen:
Inicializálni nem muszáj őket, csak ajánlott. A hozzászólás módosítva: Ápr 15, 2026
esp32 ön is megy!
Köszönöm!
Egyébként mivel az int típus különböző rendszereken más-más hosszúságú, inkább az itt található típusneveket érdemes használni: https://en.cppreference.com/c/header/stdint.
Többnyire átszoktak rájuk az emberek, mert egyértelmű. Pl. kis processzorokon az előjeles int és long: int16_t és int32_t, ESP32-n pedig az int már int32_t. A hozzászólás módosítva: Ápr 18, 2026
Arduino IDE, lib offline telepítéseSziasztok!Egy kis elakadásom van az Arduino IDE környezetben. Vásároltam egy Waveshare esp32-s3-touch-lcd-7b panelt (itt a 7b-nek lenne jelentősége). Mint utóbb kiderült, ezt manuálisan kell telepíteni az IDE környzetbe. A Waveshare oldálán -szerintük egyértelműen- le is írják a telepítés részleteit. Fogjuk rá, hogy megcsináltam a lib környezetet. Viszont a Board kiválasztásánál "Waveshare ESP32S3 XIP" az istenért sem szerepel a listában. Van valakinek valami ötlete, hogy mit rontottam el?
Valószínűleg nem oda került a telepített bővítmény, ahol az Arduino IDE keresi.
Nálam például nem a C:\Users\'username'\AppData\Local\Arduino15\packages mappában laknak a bővítmények, hanem a C:\Users\'username'\Documents\ArduinoData\packages mappában. Egyébként a esp32-XIP-3.1.1 offline package csomag tartalmilag ugyanaz, mint a hivatalos ESP32 Arduino Core bővítmény, csak egy "kiherélt" boards.txt van benne (ami kizárólag az Waveshare ESP32S3 XIP kártyát ajánlja fel) és van egy installed.json állomány, ami nem tudom, mit csinál.
Mindjárt nézem az általad jelzett problémát. Több helyre is próbáltam már másolni, de amint látod, nem jártam sikerrel.
Amit én kiolvastam a szűkszavú Waveshare telepítésből, hogy a "D:\arduinoprog\libraries" könytárba másoljam ba a zip-ből kicsomagolt "libraies" tartalmat. (Mert nekem a sketchbook "d:\arduinoprog"-ra van állítva. De nem tudtam, hogy a zip többi részét hová kell tenni. Keresek "packages" könytárat....
Na ilyen hibaüzenetet nem láttam még a windows rendszerben!
Túl hosszú fájlnév???? Megpróbátam átmásolni az offline tartalmat a "C:\Users\'username'\AppData\Local\Arduino15\packages" könyvtárba, és közben ezt dobta a gép. Ilyenkor mi van?
Másolj Total Commanderrel, az is fog figyelmeztetni, de elvégzi a másolást ha jóváhagyod. Némely program nem tud kezelni 255 karakternél hosszabb neveket, de az NTFS filerendszer elvileg igen, ez (tapasztalatom szerint) a gyakorlatban nem szokott problémát okozni.
Köszönöm!
Ezt a megoldást találtam ki én is. Előtte javítottam a regedig-tel, és a gpedit-tel a beállításokat, de ezen beállítások után is hibát dobott a rendszer. Ami még plusz érdekesség volt, hogy a gyári önkicsomagoló exe is hibát dobott. Nem tudom, hogyan tesztelik ezt , de hagyjuk, ott van az állomány.
Köszönöm a tippet!
Ez volt a megoldás, így már látja az IDE környezet ezt a panelt is a választási lehetőségek között.
AC1 vagy AC23 ? Mert nagyon nem mindegy, hogy mit kapcsolsz vele. Sima egyszerű Ohmikus, induktív vagy kapacitív-e a terhelés? 10db elektronikus előtétes led fényforrásnál tuti összehegged. Az sem mindegy mennyi ideig? Szerintem ha tájékozódni akarsz, akkor vagy add meg, mit szeretnél kapcsolni vele, vagy nézz át a findernet.com oldalra és keress hasonló paraméterű relét, amirő a katalógus elég egyértelműen nyilatkozik. Az sem mindegy, hogy ez a relé melyik érintkezőanyaggal van készítve? Az összteljesítmény sem mindegy. Gemini ezt írja:
Idézet: „A kockarelék (gyakran használt T73, JQC-3FF, HF3FA típusok) érintkezőinek terhelhetősége széles skálán mozog, de a legelterjedtebb modellek jellemzői az alábbiak: Névleges áramerősség: Általában 10A - 15A közötti AC terhelést tudnak kapcsolni 250V AC feszültségen. Feszültség: Tipikusan 250V AC (váltóáram) vagy 30V DC (egyenáram) a névleges kapcsolási feszültségük. Teljesítmény: Egy tipikus 10A-es kockarelé kb. 2500-2770 VA (AC) vagy 300W (DC) kapcsolására alkalmas. Induktív terhelés: Motorok vagy tekercsek kapcsolásakor a terhelhetőség jóval alacsonyabb, gyakran javasolt legalább 5A tartalékkal számolni, vagy kisebb (pl. 2A-es) induktív terhelésre tervezni a 10A-es relét. Minimális terhelés: A megbízható működéshez általában legalább 100mA (5V DC) terhelés szükséges. Fontos szempontok: AgCdO (Ezüst-kadmium-oxid): Magasabb AC terheléshez, motorokhoz, induktív körökhöz. AgSnO2 (Ezüst-ón-oxid): Kiváló tapadásgátló tulajdonságú, ajánlott lámpa- és kapacitív terhelésekhez. Élettartam: A maximális áram (pl. 15A) tartós kapcsolása csökkenti az érintkezők élettartamát, ezért tartós üzemre érdemes 60-70%-os terheléssel számolni.”
Köszönöm a részletes választ! Relénként 1db 600W-os fűtőszál lett volna kapcsolva vele, de a kész panel vonzó és praktikus mivolta ellenére, inkább megépítettem komolyabb relékből(250V30A), mint később kínlódjak vele, hogy összeragad.
Arduino IDE, fordítási problémaEgy nagyon egyszerű teszt progit írtam, amelyet nem képes lefordítani az Arduino IDE
A uP ESP32-S3 lenne 44 lábú panel, de azt hiszem ez mindegy is ebben a helyzetben. A fordító pedig ezt üzeni: Idézet: „In file included from d:\arduinoprog\libraries\U8g2\src\U8x8lib.cpp:52: d:\arduinoprog\libraries\Wire\src/Wire.h:116:8: error: 'void TwoWire::onReceive(void (*)(int))' marked 'override', but does not override 116 | void onReceive(void (*)(int)) override; | ^~~~~~~~~ d:\arduinoprog\libraries\Wire\src/Wire.h:117:8: error: 'void TwoWire::onRequest(void (*)())' marked 'override', but does not override 117 | void onRequest(void (*)(void)) override; | ^~~~~~~~~ Multiple libraries were found for "SPI.h" Used: D:\arduinoprog\libraries\SPI Not used: C:\Users\szujo\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\SPI Multiple libraries were found for "Wire.h" Used: D:\arduinoprog\libraries\Wire Not used: C:\Users\szujo\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.3.8\libraries\Wire exit status 1 Compilation error: exit status 1” Másnak lefordul ez a kis program, és nálam vesztek össze könyvtárak?
Köszönöm a visszajelzést!
Előzőleg telepítettem egy 7" kijelzőhöz tartozó lib sorozatot kézzel. Gyanítom, hogy ráfaragtam, mert valami összekuszálódott. Igyekszem kijavítani a rendszert. Most visszatettem a "régi" könyvtárak elérési lehetőséget, és így már nekem is lefordul durva piros üzenet nélkül. Majd lesz valami később a 7"-os kijelzőmmel. Arduino telepítési környezetSziasztok!Előre jelezném, hogy amatőr arduino-s vagyok, s tanácsot kérek, azzal kapcsolatban, hogy hogyan érdemes kialakítani az IDE környezetét, könyvtárait. Mostnában többször is szaladtam pofonba azzal kapcsolatban, hogy egy korábban elkészített, jól működő programot nem tudtam fejleszteni, mert valami könytár frissült az arduino rendszerben, és a változás miatt nem tudtam lefordítani. Ehhez pedig még adódik, hogy bizonyos könyvtárakat (tft kijelzők) adott panelhez kell konfigurálni. Szóval várom a javaslatokat, ötleteket, a "ki hogyan szokta" módszereket a beállításokkal kapcsolatban!
Szerintem döntsd el melyik spi, wire lib kell, a másikat töröld le vagy mozgasd el.
Én ugy látom pont forditva kellene mint az arduino gondolja
Igen, ez történt. Így már nekem is lefordult.
A probléma az, hogy így valószínűleg a másik panel programja nem fog lefordulni... Ezért kérdeztem rá a fejlesztői környezet rugalmas kialakítására.
Ha érzel magadban elég "erőt", ajánlom tanulmányozni a VSCode+PlatformIO -t.
Ott minden programhoz van lib mappa ahova bemásolhatod a könyvtárakat, mindegyikhez külön-külön. Én nyugdíjasként kezdtem el, megtanulható. Sokkal gyorsabb a fordítás.Ha maradsz az arduino IDE-nél, ajánlom letölteni a portable (.zip) programot, kicsomagolás után létre kell hozni egy portable nevű mappát, ide fog rakni mindent, a sketchbook-ot is ide kell irányítani. Így nem irkál a windowsba, külön partícióra is rakhatod. Amúgy pedig a program (.ino) mappában csinálsz egy library mappát, ide másolod a könyvtárakat, a programban pedig ide hivatkozol. Persze ezt kézzel kell megcsinálni, nem automatikusan telepítgetni a könyvtárakat. A hozzászólás módosítva: Ápr 28, 2026
Köszönöm a tippeket!
Időhiány miatt egyenlőre maradok az IDE panelen, s próbálok játszani a könytárakkal. Utána ki fogom próbálni ezt az IO platformot is.
Én csinálok minden projektnek egy portable IDE-t, amiben csak annak a "szemetjei"vannak. Így könnyű gyomlálni, módosítani, mert egy helyen van minden.
esp32 3.xx tele vanak új api hivásokal ezért régi könytárak nem müködnek vele de ha le is fordul akoris hadwerben is lesznek problémák ami nem megy egyszerüen és kész!Annyi hogy 2.016 ted vissza és szépen megoldodnak a hibák 90% legalább!Akinek van tengernyi ideje az majd megfejti egyszer (diákok) pl
vagy akik egésznap ezt búják!
Felhasználó utvonalba ékezetes könytár név van pl! arduino ide még a pause utvonal vagy fájlnévben sem tudja kezelni ezt már javithatnák bene elmult pár év a létezése ota!
A hozzászólás módosítva: Ápr 28, 2026
Én is belefutottam korábban ebbe a problémába. Azt találtam ki, hogy minden esetben az #include sor után megjegyzésben feltüntetem a használt könyvtár elérési útját, esetleg verziószámát.
Nagyon melegen tudom ajánlani a WOKWI-t ilyen kérdések esetén. Én sok mindent, mielőtt megépítem, leprogramozom, először itt futtatom, azán ha stabil akor a sketchet csak copy-paste segítségével átemelem az IDE-be. Gemini is adott támpontot a kereséshez:
A kódodban alapvetően két technikai probléma látszik, amelyek miatt az óra kijelzése nem lesz megfelelő vagy villódzni fog a képernyő. Íme a legfontosabb javítandó pontok: 1. Az SPI inicializálása (Konstruktor hiba) A HW SPI (Hardware SPI) használatakor az ESP32-nél a kódodban most ez szerepel: U8G2_SSD1309_128X64_NONAME2_F_4W_HW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* dc=*/ 9, /* reset=*/ 8); A probléma: Hiányzik a CS (Chip Select) pin megadása. A hardveres SPI-nél az U8g2 könyvtárnak tudnia kell, melyik lábon választja ki a kijelzőt. Általában ez így néz ki: u8g2(orientáció, cs, dc, [reset]) Próbáld meg így (ha a CS lábad a 10-es): U8G2_SSD1309_128X64_NONAME2_F_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8); (Megjegyzés: Hardveres SPI esetén a Clock és Data lábakat a rendszer alapból tudja, azokat nem kell a konstruktorban felsorolni, ha az alapértelmezett lábakat használod.) |
Bejelentkezés
Hirdetés |







Sokkal gyorsabb a fordítás.
vagy akik egésznap ezt búják!





