Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   556 / 839
(#) sany válasza szili83 hozzászólására (») Okt 4, 2019 /
 
Elvileg lehet vele, ha máshogy nem 8 bites módban. Mi a kijelző pontos típusa?
(#) sargarigo válasza szili83 hozzászólására (») Okt 4, 2019 /
 
Egészen biztosan lehet. Szinte biztosan. Jó lenne tudni a típusát, vagy legalább a lábkiosztását. Gondolom egyik sem ismert, mert akkor mondtad volna. Miből származik? Van bármi infó róla?
Esetleg valami hasonló lehet mint ez..
Vissza kellene követni annyi vezetéket amennyit csak lehet.
Elképzelhető hogy nem intelligens chip-ek vannak rajta, hanem csak a driverek, és akkor sor/oszlop címzésre lesz szükség. Mint ez itt például.
A hozzászólás módosítva: Okt 4, 2019
(#) szili83 válasza sargarigo hozzászólására (») Okt 5, 2019 /
 
Mérlegben volt. Annyi van a kijelzőn, ami látszik sajnos nem több.

Ha van aki kikisérletezi adok neki cserébe belőle.
(#) morgo hozzászólása Okt 8, 2019 /
 
Sziasztok!
A képen látható módon van fixre kötve egy HC-05 modul Mega alaplapra. Abban szeretném a megerősítéseteket, hogy ha a 16-17 pineket digitális I/O-ként konfigolom, nem soros portként, akkor a modulnak nem lehet baja, bármilyen is legyen a pinek állapota. Jól gondolom?

ardu-bt.JPG
    
(#) benjami válasza morgo hozzászólására (») Okt 8, 2019 /
 
Ha az arduino 17. lábát kimenetre állítod és alacsony szintet teszel rá, miközben a HC-05 magas szintet szeretne kiadni a TX lábán, akkor a közte levő nyitóirányú diódán szkanderezni fognak egymással.
(#) morgo válasza benjami hozzászólására (») Okt 8, 2019 /
 
Az lemaradt, hogy amikor a 16-17 pinek I/O-nak vannak konfigolva, a bluetooth nem lesz használatban, de tápot akkor is kap. Ilyenkor is küldözhet némi adatot?
(#) morgo válasza morgo hozzászólására (») Okt 8, 2019 /
 
Ha adatot nem is küld, 3,3V jelen van a modul TX kivezetésén. A dióda és a mega RX lába közé beraktam egy 3,3k ellenállást. Így ha a 17. pin alacsony szintű kimenetként van beállítva, akkor is csak kisebb mint 1mA fog folyni a diódán, az meg nem okozhat gondot semminek. Szerintem.
(#) benjami válasza morgo hozzászólására (») Okt 8, 2019 /
 
Az uart kimeneteken általában logikai magas szint a nyugalmi állapot.
(#) Rober_4 hozzászólása Okt 9, 2019 / 5
 
Sziasztok! Szeretném megköszönni az Arduinos-Due FM szintiben nyújtott segítségeteket! Szerintem létrejött egy nagyjából használható verzió, bár természetesen minden kódon van még mit javítani. A végén kialakult belőle egy 2x3 operátoros fm szintetizátor, mely különböző hangmintákból számol az fm moduláció elve alapján. Az operátorok hangolhatóak, lehetnek fix freki értékűek stb. Dinamikaérzékeny, a moduláció változhat a billentyűlenyomás erősségétől. A végén amin nagyon meglepődtem, hogy megszólalt egy ilyen reverb engine szerűség is, egy sima delay bufferbe átírásos, később visszaolvasásos algoritmussal. A többi szerintem le van írva a weboldalon, illetve még azt is javítgatom és foltozgatom. Videót hangmintákat cserélek jobbra majd.
Külön megköszöntem az oldalon kapu48, illetve Benjami-nak a segítséget, ha szeretnék, akkor a valós nevüket is kiírom. Persze úgy sem nézi meg a kutya sem
Mindenesetre azt veszem észre, hogy alakul egy különleges eszköz, ami lehet a végén még használható is lesz zenei célokra! A forráskód, egyéb leírás, segédszoftver letölthető az oldalon!
Arduino polifónikus fm szintetizátor
(#) kapu48 válasza Rober_4 hozzászólására (») Okt 10, 2019 /
 
Szia!

Mi köszönjük a MIDI project közlését!
Szép munka, gratulálok a sikerhez!

Javasolnák kis hardveres gyorsítást, és akkor lehet, hogy nem is kellene külön uno az LCD-nek.
Bár kapcsolási rajzot ne közöltél, de a képekről látom, hogy nagyon sok pin fent maradt az unon.
Én ledobnám az LCD-ről az I2C bővítőt, és bekötném 8 bites párhuzamos adat kommunikációra.
Híd el, rengeteget dobna az LCD kezelés sebességén! Ezáltal az egész program futása gyorsabb lenne.
Nem fogná vissza a viszonylag lassú I2C.

Bővebben: Link
Csak az adatvonalat 1 portra tegyed, szépen sorban.
A hozzászólás módosítva: Okt 10, 2019
(#) djusee válasza Rober_4 hozzászólására (») Okt 10, 2019 /
 
Vau, vau, megnéztem és tetszik . Esetleg GitHub -ra feltölteni a kódot? Többen láthatnák és lehet segítenének a fejlesztésben is.
(#) KoblogPerGyok válasza Rober_4 hozzászólására (») Okt 10, 2019 /
 
Helló!

Kiváló projekt! Nekem nagyon tetszik!

Jelgenerátorral nem próbálkoztál? Azzal nem lehetett megoldani?
(#) mateatek válasza kapu48 hozzászólására (») Okt 10, 2019 /
 
Csak annyiban egészíteném ki a hozzászólásodat, hogy alapban az I2C-s LCD kezelés lassabb a 4 bitesnél is. De ha az I2C vezérlő alapértelmezett, alapból lassú órajelét felpörgetjük, akkor sokkal gyorsabb tud lenni a 4 bitesnél. De azt nem tudom, hogy eléri-e a 8 bites módot.
(#) Rober_4 válasza kapu48 hozzászólására (») Okt 10, 2019 /
 
Igen már többen javasolták, hogy hagyjam az i2c-t a fenébe. Egyenlőre nem a kijelzés volt a fővonal, hanem a hangszintetizálás része.
(#) Rober_4 válasza mateatek hozzászólására (») Okt 10, 2019 /
 
Ez lehet érdekelne, hogy hogyan...
(#) Rober_4 válasza KoblogPerGyok hozzászólására (») Okt 10, 2019 /
 
A jelgenerátor az csak egy jelgenerátor
(#) Rober_4 válasza kapu48 hozzászólására (») Okt 10, 2019 /
 
Annyi, hogy nem Uno, hanem Due. És igen nincs rajza, a DAC kimenete a kimenet, az rx2 a midi bemenet, illetve az lcd-nek az i2c alapértelmezett portja. Az rx2 meg kapott egy optocsatolót, annak a rajza ott van.
A hozzászólás módosítva: Okt 10, 2019
(#) kapu48 válasza Rober_4 hozzászólására (») Okt 10, 2019 / 1
 
Egy észrevételem.

Ugyan azzal a névvel kétszer is létrehozol változókat?
A programod 402. sorától:
bool gorbetime0lehet = false;
bool gorbetime1lehet = false;
bool gorbetime2lehet = false;
bool gorbetime3lehet = false;
bool gorbetime4lehet = false;
bool gorbetime5lehet = false;

És ugyanez a setupban 445. sortól:
bool gorbetime0lehet = false;
bool gorbetime1lehet = false;
bool gorbetime2lehet = false;
bool gorbetime3lehet = false;
bool gorbetime4lehet = false;
bool gorbetime5lehet = false;
bool gorbetime6lehet = false;
bool gorbetime7lehet = false;

Ez így hibás szerintem! Vagy van valami oka ennek?
(#) Rober_4 válasza kapu48 hozzászólására (») Okt 10, 2019 /
 
Ezt a változót jelenleg nem használom. Arra jött volna létre, hogy figyeljem a nulla-átmeneteket, és akkor léptessem a tva görbét, de ettől kiszámíthatatlan lett a működés, mert lehet bonyolult görbénél nincs is nulla átmenet. Ezért azt a részt már kivettem. Viszont meghagytam a változót, mert lehet még jól jön...
Köszi kidobálom a setup részben lévőket!
(#) kapu48 válasza Rober_4 hozzászólására (») Okt 10, 2019 /
 
Valamikor régen csináltam egy sebessé tesztet a:
  1. switch (var) {
  2.   case label1:
  3.     // statements
  4.     break;
  5.   case label2:
  6.     // statements
  7.     break;
  8.   default:
  9.     // statements
  10.     break;
  11. }
  12.  
  13. És az:
  14. if (condition1) {
  15.   // do Thing A
  16. }
  17. else if (condition2) {
  18.   // do Thing B
  19. }
  20. else {
  21.   // do Thing C
  22. }

Futás ideje közt. Akkor a második variáció jobbnak bizonyult.
Ha ezek a részek érzékenyek a futás időre? Érdemes lenne kipróbálni.
(#) Rober_4 válasza kapu48 hozzászólására (») Okt 10, 2019 /
 
A switch-case az elkülönülő feltételeknél gyorsabb. Legalábbis a tesztek szerint, ezzel a fordítóval.
Viszont ilyen ág, ahol egy feltétel teljesülése illetve else alapján kell megcsinálnom valamit biztosan gyorsabb az általad említett módon. Egyenlőre ez ügyben még nem nagyon rágtam át a programot.
Egyenlőre örültem annak, hogy működik a release,(lecsngés) sustem(hangtartás) rész, meg végre nem ragadnak be hangok. PL a MIDI részben pont egy ilyen else ág miatt szenvedtem pár napot...
(#) kapu48 válasza Rober_4 hozzászólására (») Okt 10, 2019 / 1
 
Most nem kritizálom a munkádat, mert az így is nagyszerű!
Csak próbálok néhány hasznos tanácsot adni.

(Abban a reményben, hogyha valamiről beszélgetünk? Akkor általában akad valakinek valami hasznos ötlete vagy javaslata.)
(#) mateatek válasza Rober_4 hozzászólására (») Okt 10, 2019 / 2
 
Én a LiquidCrystal_I2C.h könyvtár mellett használom a Wire.h könyvtárat is. Így a Wire.setClock() függvény beállítja a kívánt frekvenciát. Az alapértelmezett érték Uno-Nano esetében 100000. Ha jól tudom, akkor Due esetében is, mert az I2C az I2C. Ennek az értéknek többszörösét is bírja a vas, de ha már 5-8-szoros sebességre gyorsítod, akkor a vezetékezésre is kényes és a felhúzó ellenállást is lehet, hogy módosítani kell kisebbre. Lehet kísérletezni, addig húzni, ameddig még stabil. 3400000 a plafon és Hz-ben adja meg az órajelet.
A hozzászólás módosítva: Okt 10, 2019
(#) kapu48 válasza Rober_4 hozzászólására (») Okt 10, 2019 / 1
 
Még egy gyorsítási tipp:

A lassú -1-el szorzások helyet .
pich41 = (pichgorbe[gorbetime[0]] - 50) * picheglevel * -1;

gyorsabb lenne így:
pich41 = ~((pichgorbe[gorbetime[0]] - 50) * picheglevel -1);

Bővebben: Link
A hozzászólás módosítva: Okt 10, 2019
(#) Rober_4 válasza kapu48 hozzászólására (») Okt 10, 2019 /
 
Pont azért dobtam ide, hogy lássák más szakemberek! Teljesen örülök minden kritikának, részemről az, hogy tegnap előtt megszólalt a reverb rész, már hatalmas élmény volt! Tehát köszönöm. Csak ugye sokszor járok úgy, hogy egyszerűbbnek meg logikusnak tűnne, mégsem működik a dolog.
Pl egy kérdés: miért nem tudom a delaybuffer tömböt nagyobbra venni, mint 3300?
(#) kapu48 válasza Rober_4 hozzászólására (») Okt 10, 2019 /
 
Mert globálisan foglalsz le rengeteg memória területet, amiket sosem szabadítasz fel.
Ekkora területből kel gazdálkodnod: SRAM 64 + 32 Kbytes
Még csoda, hogy ennyit sikerült.

Meg kellene oldani, hogy amit éppen nem használsz, azt felszabadítsd.
Vagy csak a felhasználó függvényen belül foglalja helyet a tömbjeidnek.
(#) Rober_4 válasza kapu48 hozzászólására (») Okt 10, 2019 /
 
Ez tök jó ötlet, megint tanultam, viszont van egy plusz zárójelezés, az nem lassít?
(#) Rober_4 válasza kapu48 hozzászólására (») Okt 10, 2019 /
 
Eddig 10%-on álltam, de lehet elnéztem...
(#) sargarigo válasza Rober_4 hozzászólására (») Okt 10, 2019 / 1
 
A zárójel csak a fordítónak szól, hogy milyen sorrendben hajtsa végre a műveleteket. Tehát nem lassít, akármennyit teszel bele.
(#) kapu48 válasza Rober_4 hozzászólására (») Okt 10, 2019 /
 
Az a Flash 2 x 256 Kbytes-ből lefoglalt terület!
Nem keverendő a kettő össze!

És ha jól tudom? Itt az int az megegyezik a poci adatszélességével.
Vagyis 32 bites, míg az AVR-eknél csak 16 bites.
A hozzászólás módosítva: Okt 10, 2019
Következő: »»   556 / 839
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem