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   65 / 854
(#) andykaaa hozzászólása Dec 2, 2014 /
 
Sziasztok,
Azt hogy felkerekitsem az erteket azt elertem, megcsinaltam, de most valami olyasmire lenne szuksegem ami ket tizedes pontossaggal irja ki ugy hogy az utolso szamjegy mindig csak 0 vagy 5 legyen. Valahogy igy 5,05 vagy 5,10 vagy 5,15.
Ezt hogy csinalhatnam meg ? Jol jonne a segitseg.
Koszonom.
(#) andykaaa hozzászólása Dec 2, 2014 /
 
Vagyis 5 század pontsaggal irja ki az erteket.
(#) varttina válasza andykaaa hozzászólására (») Dec 3, 2014 / 1
 
Szia!
Típuskonverziókkal megoldható. Amennyiben az "ertek" float típusú, a float(int(ertek*20))/20 öt századra kerekített érték lesz.
A hozzászólás módosítva: Dec 3, 2014
(#) morfondi hozzászólása Dec 3, 2014 /
 
Sziasztok! Van-e valakinek ötlete, mi lehet a probléma: futtatni szeretném pl. a "Menubackend" menürendszert egy Sanguino (ATMEGA644P) klónon, felprogramoztam a Sanguino bootloadert. Teszt kis programokkal, prímán mennek, kimeneti tesztek, analóg be-ki, soros monitor (ascii tábla kiiratás). Azonban ha egy menürendszer mintapéldát töltök fel, megőrül a kijelző, elszáll a progi. 16 MHz-es kvarc, szűrés a tápfeszen. Honnan lehet kideríteni, mi a rossz, a bootloader esetleg, a fordító? Ugyanaz UNO-n (vagy ATMEGA328P-vel próbapanelon) prímán megy. Csak azért kellene a 644P, mert az UNO-n kevés a menühöz meg a progihoz a 32 kB. Csak a fejem vakargatom, olvasom a fórumokat, meg morfondírozok, de nem jutottam előbbre. Előre is köszi.
(#) kapu48 válasza morfondi hozzászólására (») Dec 4, 2014 /
 
Én ugyan nem ismerem ezt a Sanguino (ATMEGA644P) klónot.

De azt hiszem Ardunió nem kezeli a (ATMEGA644P)t.
Mivel direkte kihangsúlyoztad, hogy ugyanazt az eljárást használod, mint ATMEGA328P-ve!
Ez pedig eleve hibás, mert a botloader nem az ATMEGA644 nagyobb memória végére kerül, hanem valahova a közepére. Mivel azt az ATMEGA328-hoz méretezték.
(#) morfondi válasza kapu48 hozzászólására (») Dec 4, 2014 /
 
Köszi. A bootloader az a 644P-hez való, és az Arduino IDE környezet hardware mappájába az ajánlás szerint be vannak töltve az adatok, és a 644P-hez való bootloadert használom. Megjelenik a panelok között mint Sanguino 644P, a hozzá való soros illesztővel az apróbb példaprogik lefutnak prímán. Ugyanaz a program átváltva UNO-ra és az UNO-t rádugva jól megy, pl. 13 kB méretű az egyik ilyen menubackend minta. Semmit nem változtatva a mintaprogin, visszaváltok Sanguino panelra, feltöltöm, és a panel megőrül tőle. Látom, hogy 13 kB a 63 kB-ból, tehát még van bőven hely. Kérdés lehet még, hogy esetleg az Arduino IDE core részén nem kell-e változtatni, vagy esetleg a lefordított kódot hol lehet megtekinteni, hol lehet hibát keresni benne?
(#) csabeszq válasza morfondi hozzászólására (») Dec 4, 2014 /
 
Értelemszerűen ugyanaz a kód nem fog Atmega644-en és Atmega328P-n futni.

Teljesen más a lábkiosztás, másféle timerek, regiszterek vannak, ezért teljesen más szoftvert kell Atmega328P-re feltölteni, mint Atmega644P-re.

Az Arduino ezt úgy oldja meg, hogy fordításnál a megfelelő mikrokontrollerre átfordítja, hogy más kód fusson. Az Atmega644P nem támogatott Arduino-n, szóval valamit azért fusizni is kellett neked, hogy egyáltalán leforduljon.

Távolról a problémát is nehéz megérteni, mert annyi jött le, hogy egy 28 lábú chipet egy 40 lábúval helyettesítettél és nem megy. Fogalmam sincs, hogy ezt hogy sikerült elérni, mert teljesen inkompatibilis a két rendszer.

Valószínűleg teljesen más a hardver is, ezért a kettő összehasonlíthatatlan. Lehet LCD kijelzőt programozni Atmega644P-vel is, de más programmal és más huzalozással. Teljesen normális, hogy egyikről nem tudod változtatás nélkül átvinni a másikra.
A hozzászólás módosítva: Dec 4, 2014
(#) morfondi válasza csabeszq hozzászólására (») Dec 4, 2014 /
 
Akkor nem jól fogalmaztam. Ugyanazt tettem, mintha UNO-n írt programot az Arduino IDE-ben lefordítva, letöltve az UNO-ba megy. Az alappanelt átváltva a Sanguino-ra, lefordítva, letöltve a Sanguino-ra, ugyanaz az egyszerűbb program vagy programok mennek rajta. Majd betöltve egy korábban UNO-n tesztelt programot, pl. MenuBackend demo, átírva a megfelelő lábakat pl. a Liquidcrystal-ban, elindul, de megőrül egy kis idő múlva. Fusiztam, mert a hardware alá be kell tenni egy Sanguino könyvtárat, és innen már Sanguino panelt is választhatsz. Vagy akár Atmega1284P (128 kB , nagyobb RAM, több EEPROM) is használható. Maga az Arduino környezet nem jelez hibát, lefordul a progi, le is töltődik, csak sajnos ami 328-on megy, valamiért nem megy 644P-n. A core könyvtárba is betöltök minden specifikus fájlt. Csak azt nem értem, hogy más hogy használja Arduino-ból a 644P-t 3d printer vezérlésére.
(#) morfondi válasza morfondi hozzászólására (») Dec 4, 2014 /
 
Ugyanazt játszom el, mintha UNO-ról Mega2560-ra váltanék. Progi marad, panel változik. De ezt még megpróbálom, kíváncsiságból.
A hozzászólás módosítva: Dec 4, 2014
(#) csabeszq válasza morfondi hozzászólására (») Dec 4, 2014 /
 
Abban biztos vagy, hogy a szoftver jó (ami az Atmega644-et kezeli)?

Vannak I2C LCD-k, bár gondolom azzal nem lenne problémád. Amit gyanítok, hogy a 14 lábú LCD-d van, a kábeleket meg valahogy félrekötötted.

Azt sem tudjuk, hogy van-e benne PWM (háttérvilágítás), ami máshol lehet Atmega644-en,...

Innen messziről nem egyszerű véletényt mondani.
A hozzászólás módosítva: Dec 4, 2014
(#) morfondi válasza csabeszq hozzászólására (») Dec 4, 2014 /
 
Akkor pontosítok. A lábak jó helyre vannak kötve. Az LCD normál, bekötve RS, RW földre, EN, D4,D5,D6,D7 bekötve. Sima LCD progi jól megy, kiiratás ok, még a definiált karaktekek is jól jelennek meg, kiiratás jól változik, pl. egy szám növelés. A Liquidcrystal beállítva megfelelően. A 644P-ben a megfelelő bootloader van beégetve, az Arduino IDE fordít, letölt, a progi indul, jól fut. Ha a Menubackend minta kerül bele megfelelő beállítások után, Liquidcrystal pinek átírva, akkor a menu kezdőlapja még jól megjelenik, a kiiratás ok, de rövid idő után már nem tudom gombokkal a menüt léptetni, a proci néha újraindul, ami egy egyszerű progival nem fordul elő. pl. LED-ek villogtatása pl. órákig. Olyan, mintha az IDE nem jól fordítaná le a memória mutatókat használó progit, csak nem tudom, hol lehetne ezt megnézni, disassembler? vagy valami listafájl?
(#) andykaaa válasza varttina hozzászólására (») Dec 4, 2014 /
 
Koszi a segitseget, de oszinten olyan lama vagyok hogy nekem nem jon be.
(#) blaci hozzászólása Dec 4, 2014 /
 
Sziasztok!

Van egy 2.2" SPI soros lcd-m, amihez az Adafruit ILI9340 könyvtárát használom.
A kijelző 3.3V-tal vezérelhető, a szintillesztéshez CD4050 ic-t használok.
Az ajánlott bekötés mellett a szoftveres SPI szépen meghajtja a panelt, de dög lassú. A hardveres SPI viszont csak egy szép fehér képernyőt eredményez.
Egyelőre dugaszolós próbapanelen raktam össze, de próbáltam minél rövidebb vezetékeket használni. Próbáltam kínai Arduino Nano 3.0-val és egy AVR-Duino / R3 panellel is, de az eredmény ugyanaz. Mi lehet még a gond?
A bekötés az alábbi, az ILI9340 által javasolt:
#define _sclk 13
#define _miso 12
#define _mosi 11
#define _cs 10
#define _dc 9
#define _rst 8

Mondjuk ebből a MISO szoftveres módban biztosan kihagyható, de bekötöttem a biztonság kedvéért.
(#) csabeszq válasza morfondi hozzászólására (») Dec 5, 2014 /
 
> a proci néha újraindul

AVR-es karrierem során sokszor volt, hogy az AVR újraindult, ez vagy hardver, vagy szoftver probléma. Hardver esetén a RESET lábon zaj jelent meg, vagy az AREF pin lebegett, vagy a VCC eszméletlenül zajos volt.

Ha van valamiféle oszcilloszkóp-szerűséged, akkor nézd meg, hogy mi van a VCC és a RESET lábakon. AREF és a föld közé rakjál 100nF-ot.

Ha a hardver hibát kizártad, akkor jön a szoftver:
- győződj meg, hogy a bootloadert értelmes emberek írták-e és nem kapcsolták-e be szórakozásból a watchdog-ot

  1. #include <avr/wdt.h>
  2.  
  3. int setup()
  4. {
  5.   wdt_disable(); // rögtön ezzel indulj!
  6.  
  7.   // itt jöhet a többi
  8.   // ha ez megoldja a bajt, akkor a bootloader fejlesztőjének küldhetsz egy gratuláló levelet
  9. }


Ha nem hardver hiba és nem watchdog, akkor már csak egy maradt hátra: verem túlcsordulás.
Küldök mintaprogramot, hogy hogyan tudod a vermet túlcsorgatni. Ilyenkor esetenként RESET-el, lásd példaprogram.

  1. void setup()
  2. {
  3.   pinMode(13, OUTPUT); // led outputra
  4.  
  5.   digitalWrite(13, true); // LED be 2 másodpercre
  6.   delay(2000);
  7. }
  8.  
  9. void loop()
  10. {
  11.   uint8_t buffer[30]; // foglaljunk le 30 byte-ot
  12.   uint8_t i;
  13.   for( i=0; i < sizeof(buffer); i++)
  14.     buffer[i] = 255; // írjunk is bele valamit
  15.    
  16.   digitalWrite(13, ! digitalRead(13)); // led villogtat
  17.   delay(100);
  18.  
  19.   loop(); // újra meghívod, anélkül, hogy kilépnél a függvényből
  20.  
  21.   delay(buffer[3]); // hogy a fordító ne optimalizálja ki
  22. }
A hozzászólás módosítva: Dec 5, 2014
(#) tomat5 válasza blaci hozzászólására (») Dec 5, 2014 /
 
Szia!
Ha még nem tetted meg akkor a CS-t állítsd be kimenetnek a setupban és kapcsolg high-ba. Nekem legalábbis ez segített.
Üdv.
(#) szikorapéter hozzászólása Dec 5, 2014 /
 
Üdv. Olyan problémám volna hogy próbáltam arduino uno-ra egy sketch-et lefordítani,de mindig beketötött a tv szóba. Felteszem a problémát kapcsolásal mindenel eggyüt. Hátha valaki tud segíteni. A válaszokat előre is köszönöm.

Szerk.: Arduino uno,a 328p-vel.
A hozzászólás módosítva: Dec 5, 2014
(#) blaci válasza szikorapéter hozzászólására (») Dec 5, 2014 /
 
Kipróbáltam 1.0.5 verzión, probléma nélkül lefordult.
(#) szikorapéter válasza blaci hozzászólására (») Dec 5, 2014 /
 
Nekem 1.0.5-r2 van azon nem futott le. Lehet a program hibás?
(#) blaci válasza szikorapéter hozzászólására (») Dec 5, 2014 /
 
Nem tudom, nekem az 1.0.6 verzióval egy rakás program nem fordul le, úgyhogy könnyen előfordulhat. Illetve nem feltétlen hibás, csak az alaprendszerben megváltozott néhány dolog, amit követni kellene a fordítandó programokban.
(#) szikorapéter válasza blaci hozzászólására (») Dec 5, 2014 /
 
Egy linket tudnál küldeni hol érhetem el a normál 1.0.5 verziót? Mert ha le akarom tölteni az arduino oldaláról,ott is az r2 van fent.
(#) blaci válasza szikorapéter hozzászólására (») Dec 5, 2014 /
 
(#) szikorapéter válasza blaci hozzászólására (») Dec 5, 2014 /
 
Telepítés után ujra jelentkezem.
(#) blaci válasza blaci hozzászólására (») Dec 5, 2014 /
 
Most látom, hogy tényleg. Ez érdekes, akkor valami más nem stimmel.
A libeket a megfelelő helyre másoltad?
A hozzászólás módosítva: Dec 5, 2014
(#) szikorapéter válasza blaci hozzászólására (») Dec 5, 2014 /
 
Tehát sima 1.0.5-ös nincs csak az r2 verzió?
(#) szikorapéter válasza szikorapéter hozzászólására (») Dec 5, 2014 /
 
Felraktam egy sima 1.0.5-öst de azzal is itt a hiba.
(#) blaci válasza szikorapéter hozzászólására (») Dec 5, 2014 /
 
Azért, mert a zipben levő könyvtárakat nem másoltad a helyére.
A Controllers és a TVout a c:\program files\arduino\libraries alatt kell hogy legyen.
Miután odamásoltad, indítsd újra az Arduino IDE-t.
A hozzászólás módosítva: Dec 5, 2014
(#) szikorapéter válasza blaci hozzászólására (») Dec 6, 2014 /
 
Már rendben működik. Köszönöm a segítséget.
(#) elektro13 hozzászólása Dec 7, 2014 /
 
Sziasztok!
Már régóta van 2 arduino-klónom, és a napokban nem tudtam egyikre sem programot feltölteni. Sem usb-n, sem programozóval. "Varification error, content mismatch" hibaüzenet jelenik meg. A flash meg "szeméttel" van tele. Szerintetek mivel van a hiba?
(#) csabeszq válasza elektro13 hozzászólására (») Dec 8, 2014 /
 
Gondolom szórakoztál valamit a programozóval és kinyírtad az Arduinokon a bootloadert.

Az Arduino-kat alapból nem tudod programozni programozóval, mert oda bootloader kell. Bármilyen kódot feltöltesz, törlöd vele a bootloadert.

Minden programozás úgy kezdődik, hogy a programozó kiadja a "chip erase" parancsot és mindent kitöröl. A Flash/EEPROM tartalma csupa 1 bit lesz (255).

Ezután a feltöltő program képes egyesével kikapcsolni a biteket. A feltöltő minden 1-es bitet képes 0-ra átírni. Visszafelé már nem képes erre, ami egyszer 0 volt, abból 1 már nem lesz.
(Gondolom a programozón kikapcsoltad a chip törlést, ezért nem sikerül feltölteni rendesen semmit)

Amit javaslok:
- adj ki programozóval teljes törlést, míg minden alapállapotba nem kerül
- töltsd vissza az alappanelhez tartozó bootloader-t
- használj USB-t feltöltéshez
A hozzászólás módosítva: Dec 8, 2014
(#) Kovidivi válasza elektro13 hozzászólására (») Dec 8, 2014 /
 
Szia. A hamis FTDI csipekt miatt az eredeti gyártó a frissítésével tiltja az USB-soros átalakítót. Tavir-AVR oldalan van erről egy cikk. Keresd meg ott mi a megoldás.
Következő: »»   65 / 854
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