Hirdetés
-
Premier előzetesen a Wrath: Aeon of Ruin konzolos változatai
gp A PC-s változat után a minap PlayStationre, Xbox-ra és Switch-re is elérhető lett a program.
-
Toyota Corolla Touring Sport 2.0 teszt és az autóipar
lo Némi autóipari kitekintés után egy középkategóriás autót mutatok be, ami az észszerűség műhelyében készül.
-
Robotkart irányított a majom a kínai Neuralink agyi chipjével
it A mindezt lehetővé tévő Neucybert a Neuralink kínai riválisa, a Beijing Xinzhida Neurotechnology fejlesztette ki.
-
Mobilarena
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
-
ReFleXx
addikt
válasz razorbenke92 #19347 üzenetére
mondjuk inkabb berakok egy 200forintos tp4056os töltőmodult az tuti nem engedi 3V alá meriteni.
2020-as dakota közmondás: "Intel a csórók AMD-je"
-
tibi-d
tag
Szerintetek melyik programrészlet végrehajtási ideje rövidebb:
1:
if(feltétel1 && feltétel2)
{
sor1;
sor2;
sor3;
}
if(feltétel1 && feltétel3)
{
sor1;
sor2;
sor4;
}2:
if(feltétel1)
{
sor1;
sor2;
if(feltétel2)sor3;
if(feltétel3)sor4;
} -
Wolfram
aktív tag
Képzavar EEPROM írással kapcsolatban:
Az #include <EEPROM.h> -ot használom,
EEPROM.begin(512);
EEPROM.write(..)
EEPROM.read(..)
metódusokkal.Látszólag minden rendben van, csak egy a gond, újraindítás után az összes érték elveszik?
-
tibi-d
tag
válasz ekkold #19354 üzenetére
Akkor a 2. verzió a korrektebb megoldás. A feltétel1 kiértékelése pillanatában a feltétel2, feltétel3 igazságtartalma nem változik, csak előfordulhat , hogy mindkettő igaz lehet. Ha a feltételek egymást kizáró relációban vannak, akkor kérdés a gyorsaság.
[ Szerkesztve ]
-
ekkold
Topikgazda
válasz tibi-d #19360 üzenetére
Ha a feltételek egymást kizáró relációban vannak, akkor kérdés a gyorsaság
Ebből a szempontból nézve is a második verzió a gyorsabb.
Viszont akkor lehetne if()....else.... ágat létrehozni, hogy a harmadik feltételt ne is vizsgálja ha a második teljesült. Ez még egy hajszálnyit jelenthet sebességben.[ Szerkesztve ]
-
nagyúr
válasz ekkold #19361 üzenetére
Esetleg még érdekességképpen annyit, hogy ha egy feltételt többször is meg kell vizsgálni (pl.: if(feltétel1 && feltétel2)
...
if(feltétel1 && feltétel3)
...) akkor előzetesen a feltétel1 vizsgálatának az eredményét érdemes egy változóba menteni, mert azt tudja úgy optimalizálni a fordító, hogy a processzor egyik regiszterét használja cache-nek (a lassabb RAM művelet helyett) és így magát a vizsgálatot is csak egyszer végzi el. -
ekkold
Topikgazda
Igen lehet ilyen "trükkökkel" gyorsítani egy programot, de ez processzor függő is.
Pl. a BluePill (STM32F103) a legtöbb utasítást egyetlen órjel alatt végrahajtja, tehát a feltétel kiértékelés, vagy éppen egy változó ellenőrzése ugyanúgy egyetlen órajel idejéig tart (14 nanosec).Csak érdekességképpen az ESP procik lassabban olvassák a flash-t mint az STM (és a programkód a flas-ból fut), emiatt ez utóbbi annak ellenére gyorsabb, hogy alacsonyabb az órajele. Amikor elkezdtem használni a BluePill-t, meg is lepett, hogy mennyire gyors (főleg egy arduino-hoz képest). Ráadásul hardveres szozó/osztó modulja van így az esetek nagy részében az is egyetlen órajel. Ez anyit jelent, hogy a kódban pl. szorzás helyett bitléptetést használva (vagy fordítva) ugyanolyan sebességgel fut a program. De mondjuk Atmega proci esetén (pl. arduino nano) hatalmas sebességkülönbség van a két módszer között. Ez utobbi esetében a szorzás/osztás esetén gyakorlatilag egy ciklusnak kell lefutnia a prociban.
[ Szerkesztve ]
-
nagyúr
válasz ekkold #19363 üzenetére
Mert az ARM ismeri a lebegőpontos műveleteket, az AVR meg nem.
Mikor csináltam az oszcilloszkópomat (UNO), ciklusidőre ki volt számolva a program, és a lefordított asm alapján faragtam le további értékes μs-okat meg pontosítottam az időzítéseket. Akkor láttam, hogy milyen ügyes optimalizációkat csinál a fordító.[ Szerkesztve ]
-
Wolfram
aktív tag
arduino-cli vel próbálok fordítani, de nem tudom a board nevét (fqbn paraméter)?
Az IDE-ben Wemos D1 R2 & mini van kiválasztva. -
Wolfram
aktív tag
válasz vargalex #19366 üzenetére
Igen, esp8266:esp8266:d1_mini, kihalásztam az
arduino-cli board listall -ból (a list nem ment).
Viszont most azt látom hogy a fordítási idő elképesztő hosszú ( 4 perc? )
arduino-cli --fqbn esp8266:esp8266:d1_mini compile <projectdir>
Ehhez van valamilyen paraméter? (fordításhoz használt memória stb) -
Laurencius
újonc
Arduinó Mega 2560 val szeretnék vezérelni egy TFT kijelzőt. A problémám az, hogy potméterrel tervezem a kijelzőn megjelenő képet jobbra-balra (20 pixellel) mozgatni A program írása a gond. Tudnátok-e ebben segíteni egy-két ötlettel, tanáccsal?
A kijelző:
1,8 hüvelykes SPI TFT LCD kijelző modul ST7735 128x160
A project:
https://www.youtube.com/watch?v=Dp3RMb0e1eA&ab_channel=Indrek
Mindezt már megépítettem, csak a potméter kódját nem tudom beilleszteni a fő kódba. -
nagyúr
válasz Laurencius #19372 üzenetére
Tedd már meg, hogy belinkeled, hogy pontosan mit és honnan töltesz/fordítasz (*.ino fájlt), mert ilyen zavaros github oldalt még nem láttam.
Mit nyersz egyébként a kép mozgatásával?[ Szerkesztve ]
-
Wolfram
aktív tag
Ezt bele lehet nyomni egy próbapanelba? [link]
-
gya/352
tag
Üdv Mindenkinek!
Bocs ha nem ide való a téma, de alkalmasabb topikot nem találtam.
Nagyon új vagyok a témában úgyhogy előre elnézést kérek.
Összeraktam próbából egy internetes rádió lejátszót. ESP32 és VS1003. Az edzelf féle projectet. Azért ezt mert ez volt a számomra legjobban másolható, mivel Arduinohoz, programozáshoz nem nagyon értek. Alapjában véve működik a cucc, de vannak vele gondjaim. A legnagyobb baj az, hogy induláskor nem kezdi el lejátszani a beállított állomást, hanem mégegyszer ki kell választani a web-es felületről és úgy kezdi el lejátszani. Úgyan ez igaz szinte bármelyik rádióállomásra, hogy ha kiválasztom a listából akkor sem kezdi el lejátszani, hanem újra ki kell választani és akkor már műxik. Remélem érthetően irom le miről van szó. Ilyenkor az alábbi látszik a terminálon:
[19:54:01]D: Connect to host icast.connectmedia.hu/5001/live.mp3
[19:54:01]D: Song stopped incorrectly!
[19:54:01]D: REG Contents
[19:54:01]D: --- -----
[19:54:01]D: 0 - 808
[19:54:01]D: 1 - 33
[19:54:01]D: 2 - 8
[19:54:01]D: 3 - 6000
[19:54:01]D: 4 - 0
[19:54:01]D: 5 - AC45
[19:54:01]D: 6 - C1
[19:54:01]D: 7 - 1E06
[19:54:01]D: 8 - 0
[19:54:01]D: 9 - 0
[19:54:01]D: A - 0
[19:54:01]D: B - F8F8
[19:54:01]D: C - 0
[19:54:01]D: D - 0
[19:54:01]D: E - 0
[19:54:01]D: F - 0Van valakinek ezzel kapcsolatban tapasztalata?
Ez lenne a legfontosabb kérdés, ezen kívűl van még más gond is, mert nem fogadja a parancsokat MQTT-n keresztül, de annélkül lehet élni.
Köszönök bármilyen tippet. -
nagyúr
válasz gya/352 #19378 üzenetére
Volt már téma korábban.
Anélkül, hogy beleásnám magam a szoftver részébe: ha azzal gond lenne, annak valószínűleg nyoma lenne a github oldalon az issues fülön, de nincs. Tehát valószínűleg hardveres gond lehet. Elsősorban a táp résszel lehet valami gubanc: milyen tápot kap az egész cucc és külön-külön az összetevők?
Ha az rendben van, akkor az összeköttetés az esp és az mp3 modul közt (rövidzár, laza forrasztás, esetleg külső zavar). És nem tudom, hogy a router, amire az egész kapcsolódik, volt-e már újraindítva, de az is tud problémát okozni.[ Szerkesztve ]
-
gya/352
tag
Igen, ez igaz, én sem találtam nyomát, hogy másnál is így működne.
Telefontöltőről működtetem a cuccot, de elmegy a PC USB portjáról is, kb. 150 mA-t vesz fel. Az ESP32-ről van átdrótozva az 5V a DAC-ra és ott van rajta még 47 uF kondi.
Elég nehezen tudom elképzelni hogy a felsorolt problémák lennének, mert a hiba az elég konzekvens, viszont van néhány adó amivel viszont jól működik. -
nagyúr
válasz gya/352 #19384 üzenetére
A routerre vonatkozó kérdést már másodszor ugrod át elegánsan...
Feltöltéskor milyen memóriamodellt választottál ki? Úgy tűnik az adatok tartós tárolása hibádzik valahol. Viszont a kezelő felület html része is a SPIFFS-ben van tárolva, és az működik, tehát SPIFFS van.
-
nagyúr
válasz gya/352 #19386 üzenetére
Nagy dolog nem lehet, mert alapvetően működik a cucc.
Vannak különböző memóriasémák, abban a menüben ahol a lapot kiválasztod, meg a portot stb. Ki tudod választani, hogy mennyi legyen az app, az OTA, és a SPIFFS. Ha nem szeretnéd OTA frissíteni a firmware-t, azt ki is lehet hagyni. Próbálj végig többféle sémát, hátha ott van a kutya elásva.A kódot megnézve elég beszédes debug ügyben. Tedd már meg, hogy nem csak a hiba jelentkezése utáni debug szöveget, hanem bekapcsolástól az összes kiírást (a hiba jelentkezéséig, illetve az első sikeres lejátszásig) lemented a terminálról mondjuk ide hogy meg tudjuk nézni.
[ Szerkesztve ]
-
nagyúr
válasz Laurencius #19388 üzenetére
-
Laurencius
újonc
Aha... igen ez. Nem tudom, hogy mi az a #include. Nem volt semmi gondom a kód feltöltésével, az Arduino tökéletesen működik a kijelzővel meg a kamerával.
Lehet, hogy arra gondolsz, amikor elolvastam a kód feltöltésének az utasítását, ott volt, egy olyan kitétel, hogy ezt, meg ezt kézzel másoljam be egy adott könyvtárba, de ha már benne van, akkor nem szükséges.
Hát, most nem tudom pontosan idézni, de ha szükséges, akkor majd előbányászom, és itt majd idézem a megfelelő sorokat.
Fordítás Arduino IDE-ben:Töltse le az összes fájlt
másolja az "src/lib/LiveOV7670Library" és az "src/lib/Adafruit_GFX_Library" fájlokat az Arduino "libraries" mappájába (ha már rendelkezik "Adafruit_GFX_Library"-vel, akkor nem kell másolnia)
Nyissa meg az „src/LiveOV7670/LiveOV7670.ino” fájlt az Arduino IDE-ben
Válassza az Eszközök -> Tábla -> Arduino Uno/Nano lehetőséget[ Szerkesztve ]
-
nagyúr
válasz Laurencius #19390 üzenetére
Ez nekem magas, remélem valaki el tudja nekem magyarázni, hogy hogy tud lefordulni ez a gyakorlatilag üres fájl...
-
nagyúr
Ilyenkor jövök rá, mennyire csak a felszínét piszkálgatom én ennek az egésznek...
Honnan a fenéből tudja, hogy mivel kell összelinkelődni, ha a setup.h-ba nincs include-olva és még csak nem is egy könyvtárban vannak?
Arról nem is beszélve, hogy pl az initializeScreenAndCamera() 6 fájlban fordul elő, de ezek közül egyik sem a library-ben fordul elő, hanem example fájlok:[ Szerkesztve ]
-
nagyúr
válasz Laurencius #19390 üzenetére
Próbáld már ki, hogy az ExampleTftBufferedCameraFrame.cpp fájlban ezt a részt módosítod:
void sendLineToDisplay() {
if (screenLineIndex > 0) {
screenLineStart();
#if GRAYSCALE_PIXELS == 1
for (uint16_t i=0; i<camera.getLineLength(); i++) {
sendPixelByte(graysScaleTableHigh[camera.getPixelByte(i)]);
sendPixelByte(graysScaleTableLow[camera.getPixelByte(i)]);
}
#else
for (uint16_t i=0; i<byteCountForDisplay; i++) {
sendPixelByte(camera.getPixelByte(i));
}
#endif
screenLineEnd();
}
}úgy, hogy a for (uint16_t i=0; sorokban a 0-t átírod például 20-ra! Ez elvileg a képet 20 pixellel balra fogja tolni. Ha ez működik, akkor lehet tovább lépni.
[ Szerkesztve ]
-
gya/352
tag
Köszönöm a segítséged.
A particiós séma az default volt. A többit nem tudtam mit jelent, így nem kisérleteztem vele.
Nem tudom mennyi féle sémának kellene lenni ott, de nekem három van.A pastebin-t nem ma fogom megismerni, úgyhogy elnézést, de bemásolom az egész soros monitort.
Szerk:
Eltünt amit bemásoltam, lehet hogy túl sok lett volna és nem engedte a fórummotor.[ Szerkesztve ]
-
gya/352
tag
-
nagyúr
válasz gya/352 #19398 üzenetére
Hoppá.
Találtam egy ilyet:Slow SPI, Testing VS1053 read/write registers...
19:04:19.827 -> D: This is not a VS1053, but a VS1003 instead!
19:04:19.938 -> D: Fast SPI, Testing VS1053 read/write registers again...
19:04:21.637 -> D: This is not a VS1053, but a VS1003 instead!A setupban át van ez javítva?
#define DEC_VS1053 // Hardware decoder for MP3, AAC, OGG
//#define DEC_VS1003Bár a log szerint így is felismeri, de hátha.
Új hozzászólás Aktív témák
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Hogy is néznek ki a gépeink?
- Milyen alaplapot vegyek?
- OLED TV topic
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- A fociról könnyedén, egy baráti társaságban
- Autós topik
- Vezetékes FEJhallgatók
- Escape from Tarkov
- eBay-es kütyük kis pénzért
- További aktív témák...
- HP OMEN Gaming 16-xd0009np - ÚJ 16" FHD GAMER laptop - Ryzen 7-7840HS, 16GB, 512SSD, RTX4050 (6GB)
- ARCTIC Liquid Freezer 360 II A-RGB rev.3 ( Garancia )
- NAD M25 7Ch Master Series végfok végerősítő
- Sony 55-210mm f/4.5-6.3 OSS (Sony E)
- Eladó több mint 2 év garanciával - LG OLED48C21LA / 4K/UHD/2160P/120Hz/OLED