Hirdetés
- Fél perc csend, majd világra jön egy Magic8 Pro
- Poco F7 – bajnokesélyes
- iPhone topik
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Xiaomi 15T Pro - a téma nincs lezárva
- Telefon LEGÁLIS függetlenítése szolgáltatónál
- Samsung Galaxy S25 Edge - a tegnap határán
- Okosóra és okoskiegészítő topik
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Két kamerával cserélné az iPhone Air a zakót kapucnis pulcsira
-
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
-
válasz
razorbenke92
#16225
üzenetére
Na szóval belenéztem újra, átnéztem a vegyes kódot, meg kipróbáltam Tankblock legutóbbi tanácsait (amit ezúton is köszönök)
Íme a tapasztalataim:
- Kivettem a digitalWrite() / digitalRead() / pinMode() függvényeket, helyettesítettem őket regiszter piszkálással. Ez némi helyet felszabadított, nem világmegváltó, de közelebb vitt a célhoz.
- Átírtam FastLED-el a kódot - sajnos több helyet foglal. Hozzátartozik az igazsághoz, hogy a FastLED gyárilag tud néhány színkezelési effektet, amivel helyettesíthetném a saját kódomat, de akkor lennék kb. ugyanott, mint a Neopixel könyvtárral.
- Ezután a ws2812b kezelését könyvtár helyett kiváltottam egy tömbbel ami a LED színeket tárolja, és egy eljárással, ami kibillegteti az outputra a dolgokat szabvány időzítés szerint.
Ezzel a 4000 byte körüli overflowból lett 800 byte, szóval ez nagyot hozott.- Ezután kivettem (kompletten, helyettesítés nélkül) az EEPROM kezelési műveleteket, és így sikerült befordítani a kódot színekkel, effektekkel.
- Ekkor átnéztem decompiled kódot, és kilóra bizony ennyi az annyi. Lehet még összevonni ismétléseket, meg is csináltam a nagyon nyilvánvalóakat, de minimális a csökkenés, és a további reszelés munka/nyereség aránya nem konvergál az elégséges kódcsökkenéshez.
Amivel tovább fogok menni:
- Újraírom az effekteket, az általam írt ws2812b kezelésre optimalizálva. Például dim esetén nem osztok szorzok, hanem meghatározok dim szinteket, amiket bitműveletekkel meg tudok oldani. Pl 50% esetén eltolás egy bittel. Áttűnések esetén bitmaszkokon keresztül összevagyolás, stb.
- Ha marad még hely, akkor visszaépítem a menürendszert
- Ha még mindig marad akkor pedig az EEPROM-ba mentést is visszarakom
- Ha az előző kettőnél valahol kifogyok a helyből, akkor felveszek sok effektet sok színnel, és szimplán csak végig lehet menni rajtok gombnyomással.
(Majd bedobom, ha sikerült megoldanom, hátha érdekel valakit)
Új hozzászólás Aktív témák
- Apple iPhone 15 128GB Akku: 90%, Normál, Kártyafüggetlen, Töltővel, 1 Év Garanciával!
- Apple iPhone 15 Pro Max 256GB, Akku 85%, Megkímélt, Kártyafüggetlen, Töltővel, 1 Év Garanciával!
- Xbox Series S 1 TB + kontroller 6 hó garancia, számlával!
- SAMSUNG (L49CG954SUXEN) 240HZ 5K OLED GAMER SMART ! AKCIÓ!
- Atlas + Vostok 55mm szett
- 156 - Lenovo LOQ (15IRH8) - Intel Core i5-13505H, RTX 4060
- Azonnali készpénzes GAMER / üzleti notebook felvásárlás személyesen / csomagküldéssel korrekt áron
- LG 32GS94UX - 32" OLED / UHD 4K / 240Hz - 480Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- Bomba ár! Lenovo X1 Carbon G7: i5-8365U I 8GB I 256GB SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- Lenovo P500 - 1650-2690 v3 akár 12 mag/24 szál, 16-32GB DDR4 RAM, 490W 80+gold táp, számla, 6 hó gar
Állásajánlatok
Cég: ATW Internet Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
ekkold

