Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Először meg kell keresni min és max értéket a tömbben, azt nem tudom előre, mi lesz a min és max.
Nem erre való az Arduinoban a min() és max() függvény?
Az két értékre jó csak, most próbálom a array.getMin() -t de hibát dob rá.
Pásszeg...
1. felveszel 2 változót, legyen a nevük min és max. 2. min és max értéke is a tömb első eleme legyen 3. ciklusban végigmész a tömb maradék elemein (2-5), ha az adott elem kisebb mint a min, akkor min értékét erre állítod. Ha az adott elem nagyobb, mint a max, akkor a max értékét erre állítod. Ugyan ki nem próbáltam (de lefordul), elvileg ez azt csinálná, amit akarsz:
A hozzászólás módosítva: Dec 10, 2017
Összeraktam a kódot a szöveges leírásommal:
A hozzászólás módosítva: Dec 10, 2017
A tiédet még nem próbáltam, de megoldottam favágó módszerrel:
Legkisebbet és legnagyobbat lenullázom, majd átlagolok ( de csak 3-al osztok).
Ez is működik, csak nem túl elegáns. Illetve ha bele kell nyúlni, mert mondjuk 6 vagy 8 elemet kell átlagolni, hát az igen fájdalmas lesz...
if-ben az && feltétel vizsgálatnál az a bibi, hogy ha tegyük fel az első nem igaz?
Akkor a többit már nem vizsgálja tovább, tehát nem megy végig a soron.
Az nem gond, ha ez első nem teljesül a sorban, akkor az egész sor sem teljesülhet.
qsort() fügvény a stdlib-ben? Egyszerűbb lenne.
Előfordul, hogy a tömbben két azonos elem van, akkor többet nullázok le. Így meg is bukik a dolog.
A qsort() ha jól emlékszem nagyon stack igényes, mikrokontrolleren abból pedig kevés van. Én sima bubirendezéssel oldanám meg. A define-ok a későbbi bővíthetőség miatt vannak benne.
Ez működik, köszönöm.
A "favágó módszer" nem jól kezeli az azonos tömbelemeket.
AVR-en nincs libstdc++
Helyette van mincenféle C könyvtár implementálva, speciálisan figyelembe véve az architektúra sajátosságait, például qsort() is.
Szeretnék Arduino/AVR programozással megismerkedni. Mi a helyzet az kínai piacon fellelhető Arduino deszkákkal? Van valakinek tapasztalata? Egy ilyen deszka kezdő kit-el annyiba kerül, mint itthon maga a lap.
Használhatóak, azonban belefuthatsz hibás lapokba és lehetnek problémák a driverrel. Kezdő kitet pedig itthoni forrásból is összerakhatsz, alkatészenként. (A kezdőkitek legtöbbször az adott alkatrészek árának többszöröse, és sok minden felesleges benne.)
Nem mondtam, hogy van libstdc++, stdlib.h-ról van szó. Ott van deklarálva a qsort.
Hát ez se kezeli le, ha a legnagyobb vagy legkisebb elemedből több van. Bár bele lehet hegeszteni...
Így van, a kezdő kiteket érdemes elfelejteni. 200 Ft-nyi alkatrészt megkasz 2000-ért egy szép kis dobozban. Már a kínai forrásoknák, mert itthon inkább több...
Pontosabban attól függ, hogy mit szeretnél.
Ha a tömböd ilyen: 1, 1, 3, 6, 10; akkor az én módszerem a 3-at és a 6-ot átlagolja, mert két legkisebb és egy legnagyobb van, és ezeket nem számolja. Ugyanígy működik 1, 3, 6, 10, 10 esetén, azaz amikor a legnagyobbból több van. És vannak speciális esetek, amik nincsenek lekezelve, pl. a 3,3,3,3,3; vagy épp a 6,6,6,8,8 tömb is ilyen. Ilyenkor valamilyen hiba flag-et kellene bebillenteni, mert javasolt lekezelni az ilyet ![]()
Akkor ezen még gondolkodnom kell, a tömb elemei mérési eredmények, nyilván lehetnek benne azonosak, elméletileg lehet az összes azonos is.
A hozzászólás módosítva: Dec 11, 2017
Én így csinálnám:
A hozzászólás módosítva: Dec 11, 2017
Esetleg tovább fejlesztve:
A céljaimnak ez felel meg a legjobban , kiküszöböli azokat a hibákat amire az elején nem is gondoltam. Köszönöm. Kipróbálom hamarosan.
![]()
Nem nagy dolog átírni, és figyelni arra, hogy pontosan 1 minimumot és pontosan egy maximumot hagyjon ki.
Na majd kipróbálom délután összekattintgatok egyet a Hestore-ban. De a szememnek megtetszett a "kici szárga", és valóban jól néz ki. Az unalmas kék arduino helyett ez fekete/sárga.
![]()
Szebb napot!
Szóval mivel előzőekben mutatott projektemmel nem férek bele egy attiny44 -be, az esetleg nem megoldható, hogy külső flash -el (AT24C16) bővítem a hardwert?
Megoldható, de az Arduino-t sztem mellőznöd kell, mert nagyon sok sallang van benne, ami növeli a programméretet.
Két irányba mehetsz el. Az egyik az, hogy betöltöd a karaktert, amit meg akarsz jeleníteni és ebből generálod a képpontokat (lassabb). A másik (SPI-os flasht feltételezve), hogy előre legenerálod a képernyő típusának megfelelően bitmapként a betűket (háttérszín, betűszín), a végeredményt flashbe felírod. Kiíratáskor először felkonfigolod a kijelzőt, hova megy a betű, utána pedig a flash-t, honnan vegye az adatokat, majd utána csak órajelet küldesz ki az AVR-ből és a flash IC direktben a képernyőre tolja az adatot (közös SPI busz). Nagyon kell figyelni, hogy ne lehessen rövidzár (busz IC-k, vagy áramkorlátozó ellenállások kellenek). Ez utóbbi módszer nagyon gyors eredményt adhat. Megj.: Az az IC egyébként EEPROM és nem flash. Flash IC-k olcsóbbak és jóval nagyobbak, viszont ritkábban írhatóak (ez itt nem gond), I2C helyett pedig inkább SPI, ami sokkal gyorsabb. A hozzászólás módosítva: Dec 11, 2017
Mmmm, akkor ez úgy érzem megint nem kezdő(k)nek való projekt...
Hogy kellene erre neten rákeresni, hogy lássak is valamit előbb?
Hmm, egyszer valahol láttam egy projektet, ahol valaki SPI-os SRAM-ot használt framebuffer-nek SPI-os TFT-hez egy hasonló megoldással. Én magam biztos nem vesződnék ezzel, mert létezik egy csomó filléres mikrokontroller, ahol nem szükséges ilyen köröket futni a jó eredményhez (elég a flash is és az SRAM is), csak épp azok nem AVR-ek.
Készítettem egy gyors Móricka ábrát. Az IC-ket ne vedd készpénznek (ilyenek voltak az adatbázisomban), neked szintillesztés is kellhet a TFT-hez, illetve 5V-os flash IC. A hozzászólás módosítva: Dec 11, 2017
|
Bejelentkezés
Hirdetés |