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   497 / 852
(#) mateatek válasza tbarath hozzászólására (») Dec 13, 2018 /
 
Xloaderrel Win alól fel tudná tölteni a hex kódot, nem kell neki a parancssor dágványaiban keveregni.
(#) szikorapéter válasza mateatek hozzászólására (») Dec 13, 2018 /
 
Az a baj hogy az egész tömörítvényben nem találok hex kiterjesztésű file-t.
(#) szikorapéter válasza tbarath hozzászólására (») Dec 13, 2018 /
 
A blink felment gond nélkül, a log-ban csak a memória mennyiségét írja hogy mennyit használt el és mennyi maradt még vissza.
(#) tbarath válasza szikorapéter hozzászólására (») Dec 13, 2018 /
 
.hex file az azért nincs, mert még nincs lefordítva a kód. Azt csinálná a make kezdetű sor.
A log pedig csak akkor írja ki, ha be van kapcsolva a verbose az upload-ra. Nálam be van, de lehet nem ez a default.
File -> Preferences, és itt van a show verbose output után két pippantó, a 2. az upload.
(#) mateatek válasza szikorapéter hozzászólására (») Dec 13, 2018 /
 
Egyet fordítottam. Remélem a feltöltése után nem lesz papírnehezék az arduinód.

sd2iec.hex
    
(#) szikorapéter válasza mateatek hozzászólására (») Dec 13, 2018 /
 
Én is remélem hogy nem mert használni kéne.
(#) szikorapéter válasza mateatek hozzászólására (») Dec 13, 2018 /
 
Sikerült a feltöltés és akkor most elvileg már működnie is kell a programnak? Mert össze van rakva csak hozzá kell kötni még a C64-hez hogy lehessen próbálni.
(#) Zsarka hozzászólása Dec 15, 2018 /
 
Sziasztok! Vettem egy ilyet
tettem fel drivert is hozzá. látja is az IDE de valagy mégsem tudok vele feltölteni egy villogó led programocskát .Egy 168 as 16 MHz -es usb nélküli kis nanóba szeretném használni. Az átalakítón nincs DTR, jelent e valamit ez a dolognak? tx-rx rx -tx 5v-vcr gnd -gnd így kötöttrm össze. Com 4 portot választottam ki mert amikor csatlakoztatom a kis ezközt ez jelenik meg . Usb csatlakozóval ellátott készülékek működnek ezzel a renszerrel csak ez az átalakítós nem nagyon akar . Kösz a segítséget !
(#) proba válasza Zsarka hozzászólására (») Dec 15, 2018 /
 
A DTR jelzi valahogyan a feltöltés kezdetét, szerintem anélkül nem működik. Esetleg azzal próbálkozhatsz, amikor a feltöltés elindul(na) az arduinon nyomsz egy resetet.
(#) mateatek válasza Zsarka hozzászólására (») Dec 15, 2018 /
 
A DTR-en keresztül reseteli az USB-soros átalakító az MCU-t. Gyakorlatilag egy 100nf-os kondin keresztül csatlakozik az MCU reset lábára, ami egy felhúzó ellenálláson keresztül van tápon. A kondin keresztül egy pillanatra GND-re kerül, így kiváltva a reset folyamatát.
(#) Zsarka hozzászólása Dec 15, 2018 /
 
köszönöm a válaszokat .. nagyító alá veszem a dolgot
(#) Zsarka hozzászólása Dec 15, 2018 /
 
sikerült ! villog a led , működik . Mégegyszer köszi!
(#) pisti hozzászólása Dec 15, 2018 /
 
Szeretnék egy 4x4-es billentyűzetről kétjegyű számot bekérni. A javítás lehetőségét is megtartva, "C" és az "A" billentyűvel elküldeni az értéket- később számként lesz szükség az adatra.
While ciklussal próbálkozom, de nem működik. Merre találok hasonlóra kódot?
Köszönöm!
(#) tbarath válasza pisti hozzászólására (») Dec 15, 2018 /
 
Az interneten találsz kódot. google-ba arduino 4x4 keyboard number input, vagy valami hasonló keresőkifejezésre tuti lesz találat.

De ha megosztod velünk azt a kódot ami "nem megy", akkor lehet hogy tudunk segíteni a hibajavításban...
(#) pisti válasza tbarath hozzászólására (») Dec 15, 2018 /
 
Ezzel próbálkoztam:
(#) tbarath válasza pisti hozzászólására (») Dec 16, 2018 /
 
Csak akkor lép ki a ciklusból, ha mindkét gomb "A" betű. De gyanús, hogy nem tudod olyan gyorsan nyomni a gombokat, hogy egy while cikluson belül kétszer is lefusson a getKey(). De ha mégis lefutna, akkor 2 A betűt kapnál amikor kilépsz a kódból.

DE van ennek a libnek egy waitForKey() függvénye is, igaz az mindent blokkol.
(#) pisti válasza tbarath hozzászólására (») Dec 16, 2018 /
 
Kiveszem a második getKey()-t. Próbálkozom azzal.
0-19 értéket szabad csak elfogadni, még ezt is bele kell tennem. A tízes helyiérték csak 0 vagy 1 lehet. A * karaktert pedig szintén külön kell kezelni, mert ahhoz is rendelnék.
A másik lehetőség, hogy 0-20 ig viszem be az értéket.
(#) KoblogPerGyok válasza pisti hozzászólására (») Dec 16, 2018 /
 
próbáld meg így is biztos ami biztos:

while ( ( while (keyT!='A' || keyE!='A')) || ( keyE!='A' ) )


de ez a feltétel két A esetén teljesül. Azaz, ha mindekét esetben A akkor megy tovább.


futfuthat_tovabb=false;

do :

eddigi kódod



If ((keyT=='A') || (keyE!=='A'))

{
futhat_tovabb=true;
}

while (futhat_tovabb=false)

Már ha jól értettem, hogy bármelyik A esetén lépjen tovább.
(#) KoblogPerGyok válasza KoblogPerGyok hozzászólására (») Dec 16, 2018 /
 
while ( (keyT!='A') || ( keyE!='A'))

a ctr-v megviccelt az előző hozzászólásomban.
(#) tbarath válasza pisti hozzászólására (») Dec 16, 2018 /
 
Szerintem írd le röviden, pontokba szedve, hogy pontosan milyen működést szeretnél. Olyan apróságokra is gondolok, hogy pl. a 9-et csak 09-ként lehessen bevinni, csak 9-ként, vagy mindkettő; mit csinál az A,C,*, stb.

Van nekem is egy ilyen billentyűm amit hamarosan fel akarok használni, szóval előbb-utóbb én is nekimegyek egy ilyen kódnak, megpróbálok segíteni.
A hozzászólás módosítva: Dec 16, 2018
(#) pisti válasza tbarath hozzászólására (») Dec 16, 2018 /
 
Én a logikai feltételnél a vagy-ra gondoltam, majd tovább kutatok.
Az egyszerűség miatt a 00-09 formátum is megfelel, de elegánsabb lenne tíz alatt az egy számjegyes forma.
Ez egy vasútmodell fordítókorongjának a vezérlőjéhez kell Korong. Az első változat csak kilenc kiállást tartalmazott, de szeretném 20-ra kibővíteni.
(#) tbarath válasza pisti hozzászólására (») Dec 16, 2018 /
 
Írd le, hogy pontosan milyen működést szeretnél! Mi az A, mi a C, stb. Vasútmodellhez nem értek, abból nem tudok kiindulni.
(#) pisti válasza tbarath hozzászólására (») Dec 16, 2018 /
 
Semmi külön jelentése nincs az A-nak. ezt találtam el, hogy Adja az értékel, a C pedig egy tévesen beírt értéket töröl.
A lényeg, hogy beolvassunk számokat 0-tól 20-ig és ezt a továbbiakban számként kezeljem.
(#) kapu48 válasza pisti hozzászólására (») Dec 17, 2018 /
 
Én igy csinálnám:
  1. #include <Keypad.h>
  2.  
  3. int T=0;
  4. int E=0;
  5. int SZ=0;
  6. int BE=0;
  7.  
  8. const byte ROWS = 4; //four rows
  9. const byte COLS = 4; //three columns
  10. char keys[ROWS][COLS] =
  11. {
  12.   {'1', '2', '3', 'A'},
  13.   {'4', '5', '6', 'B'},
  14.   {'7', '8', '9', 'C'},
  15.   {'*', '0', '#', 'D'}
  16. };
  17.  
  18. byte rowPins[ROWS] = {4, 5, 6, 7};                       //balról jobbra a négy oszlop keypad 1-2-3-4 kivezetése
  19. byte colPins[COLS] = {8, 9, 10, 11};                    //balról jobbra a négy sor 5-6-7-8
  20. Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
  21.  
  22. void setup()
  23. {
  24.   Serial.begin(9600);
  25. }
  26.  
  27.  
  28.  
  29. void loop()
  30. {
  31.   char keyT = 0, keyE = 0;
  32.   char digit = 0;
  33.   do
  34.   {
  35.     if(digit == 0){  // Elsö karakter?
  36.      keyT = keypad.getKey();  //tízes helyiérték
  37.       if (keyT != NO_KEY && keyT!='A') // Ne adja hozzá 'A'-t
  38.         {
  39.           BE=keyT;
  40.           T=(BE-48);
  41.           digit = 1; // Következö karaktert olvassa  
  42.         }
  43.     }
  44.     if(digit == 1){  // Második karakter?
  45.      keyE = keypad.getKey();
  46.       if (keyE != NO_KEY && keyT!='A')
  47.         {
  48.           BE=keyE;
  49.           E=BE-48;
  50.           digit = 2;  // Következö karaktert olvassa    
  51.         }
  52.     }
  53.   }
  54.  
  55.   while (keyT!='A' || keyE!='A') ;    //amíg igaz addig fut
  56.    
  57.   if(digit == 2){  
  58.     SZ=T*10+E;
  59.   }else if(digit == 1){ // ha csak 1 karaktert adtak be?
  60.     SZ=T;
  61.   }
  62.   Serial.println(SZ);
  63.   SZ = 0;
  64.   digit = 0;
  65. }
(#) tbarath válasza kapu48 hozzászólására (») Dec 17, 2018 /
 
Van egy ötletem: a tömbben a számokat sima számként, ne szám string-ként tároljuk, így nem kell belőle kivonni az ascii '0' értékét. Vélemény?
(#) sargarigo válasza kapu48 hozzászólására (») Dec 17, 2018 /
 
Idézet:
„while (keyT!='A' || keyE!='A') ; //amíg igaz addig fut”


Ez szerintem nem lesz jó! A keyT és a keyE is egy-egy változó, és magától nem fog megváltozni! Ha belemegy a while ciklusba (ami egyetlen pontosvessző), akkor onnan már nincs ami kimozdítsa, kvázi lefagy az egész.

szerk:
A sztring használatával szerintem nincs gond, gondolkodásban közelebb van a "hagyományos" billentyűzethez, meg a többi karaktert is kezelni kell valahogy (ABCD*#)
A hozzászólás módosítva: Dec 17, 2018
(#) tbarath válasza sargarigo hozzászólására (») Dec 17, 2018 /
 
Itt do{} while();-t használ, nem az a baj.
A string pedig teljesen fölösleges
(#) sargarigo válasza tbarath hozzászólására (») Dec 17, 2018 /
 
Jé, tényleg! Fel sem tűnt! Akkor bocs, nem szóltam!
(#) pisti válasza sargarigo hozzászólására (») Dec 17, 2018 /
 
Örülök minden segítő megoldásnak.
Köszönöm!
(#) KoblogPerGyok válasza pisti hozzászólására (») Dec 17, 2018 /
 
Szerintem jobban járnál, ha az isdigit() függvénnyel vizsgálnád a beérkezett karaktert, ha az az, és nem a kilépés karakter, akkor adja egy char tömbhöz, majd azt alakítod akkor számmá, mikor bepötyögte az ok gombot :'*'-t (vagy string -eket is használhatsz, a végén meg az int függvénnyel számmá alakítod azt.)

De ez sem kell feltétlenül. Inkább egy utasítás az LCD-re, hogy a '*' gomb megnyomása után csak számokat adhatsz meg, kilépés belőle '*' gombbal. Ok megnyomja, ekkor egy while ciklus addig, míg megint '*'-t nyom meg. Na most az isdigit-el közben vizsgálod mit adott meg. Ha szám, akkor beteszed a tömbbe vagy a string-hez hozzáfüzöd. Ha nem, akkor abban az if-ben azt vizsgálod (előző else ága), hogy véletlenül nem '*'-t nyomott-e megint. Ha igen, akkor az a logikai változó ellentettjére változik ami a while-cilkusban tartja a fő programot.


A while után meg megvizsgálod mit adott meg. Ha semmit, akor semmit sem kell csinálni, max egy üzenet felé, hogy kilépett ebből úgy, hogy nem adott meg számot.
Következő: »»   497 / 852
Bejelentkezés

Belépés

Hirdetés
XDT.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