Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno Arduino-divná chyba

Zdar. Pokud je tu někdo, kdo si hraje s Arduinem, mohl by mi vysvětlit následující situaci?:
Mám napsaný program, který vypisuje něco na displej. Obligátní "Hello, World!". Asi takhle:

lcd.print("Hello, World!");

není co řešit, nahraju to, displej blikne a vypíše Hello, World!
Takže chci pozdravit svět důrazněji a napíšu

lcd.print("Hello, World!!!");

nahraju to, displej se zasekne na resetu, AVRDUDE zůstane viset v procesech a nechodí to. Musím odstřelit AVRDUDE a pak můžu nahrát cokoliv dalšího. Pokud tam dám místo tří vykřičníků jen dva, projde to bez chyby. Ale nedělá to jen při použití displeje. Pokud v programu definuju nějakou proměnnou:

String neco = ("!!!");

udělá to při nahrávání to samý. AVRDUDE je na tři vykřičníky nějak alergický nebo co?

(tři vykřičníky jsou minimum, od tří nahoru se to vždycky sekne).

Může mi to někdo objasnit?

Předmět Autor Datum
Co presne (hex?) nahravas jak presne (commandline?) do coho presne (doska, kam to je zapojene?) a pr…
MM.. 17.02.2015 01:40
MM..
Otevřu IDE pro Arduino, napíšu sketch, uploadnu do desky. Avrdude to používá jaksi samo :-) Deska je…
mia 17.02.2015 08:33
mia
nejsi sám https://code.google.com/p/arduino/issues/detail?id =459 dole je nějaké firmware update
jirka44 17.02.2015 08:58
jirka44
Dík, takže by mělo stačit flashnout nový bootloader a finýto.
mia 17.02.2015 09:17
mia
Ano, chyba je tam niekde na ceste flashovania (ne avrdude samotny), preto som sa pytal jak to tam na…
MM.. 17.02.2015 10:26
MM..
Donedávna jsem AVRka programoval v assembleru pomocí AVR studia a program do nich flashoval přes Pon…
mia 17.02.2015 17:24
mia
Našel jsem nový, údajně opravený bootloader, flashnul ho do Arduina a bohužel to dělá furt.
mia 18.02.2015 17:15
mia
Ten tvoj Arduino pouziva pre USB-COM konverziu druhy atmel, ten ma tiez nejaky firmware. Flashoval s…
MM.. 18.02.2015 17:29
MM..
Flashoval jsem jen hlavní Atmel. Ten 16U2 jsem nechal být, to je jen převodník USB-232. Jak už píše…
mia 18.02.2015 23:46
mia
Tu pisu ze s UNO to funguje spravne, index.php asi bude bug v tom Atmega16U firmware (USB-COM conver…
MM.. 18.02.2015 17:34
MM..
a sorry blbost, UNO ho ma tiez arduinoBoardUno, typ zavisi od HW verzie. Ale aj tak moze tam byt odl…
MM.. 18.02.2015 17:38
MM..
Tohle jsi četl? The problem was in the bootloader burned in the Atmega2560, just upgrading the IDE…
jirka44 18.02.2015 17:50
jirka44
Asi tak - bootloader jsem flashnul přes PonyProg a paralelní port, protože v Arduino IDE to nešlo. P…
mia 18.02.2015 23:41
mia
Mam pocit, ze jsem na to taky kdysi narazil, ale novy firmware to poresil. Zkousel jsi treba tohle?…
kubik 19.02.2015 10:41
kubik
Aha, ted mi doslo, ze to je blbost, zapomen na to :) poslední
kubik 19.02.2015 11:32
kubik

Otevřu IDE pro Arduino, napíšu sketch, uploadnu do desky. Avrdude to používá jaksi samo :-) Deska je Arduino Mega2560 R3.

edit:// nevím jaký hex se nahrává, ten vznikne až po požadavku na upload. Já píšu normální texťák v Arduino IDE. Pak dám Upload, ono to zkompiluje, zavolá Avrdude s nějakýma parametrama a ten to pošle do desky.

Donedávna jsem AVRka programoval v assembleru pomocí AVR studia a program do nich flashoval přes PonyProg a paralelní programátor. Teď jsem si na hraní pořídil Arduino Mega2560, kontaktní pole a spoustu pičovinek k tomu. Je to bezvadný relax, zkouším si na tom třeba komunikaci s displejem, teplotní čidlo, RGB ledku... prostě si hraju. Odzkouším si jednu věc, přehodím dráty, nahraju jiný program...

Ten tvoj Arduino pouziva pre USB-COM konverziu druhy atmel, ten ma tiez nejaky firmware. Flashoval si aj pre ten nejaky FW, alebo co konkretne si kam jak flashoval?
Pre USB port bol nejaky ovladac k tomu ci to nainstalilo automaticky COM port?(skusil si v tom com porte zmenit nastavenia handshajking vo Win v spravci?) Mas to v USB2.0 alebo USB3.0 porte? Skusil by som preistotu len 2.0 port ak mas. Tazko povedat v ktorom clanku sa to sere. Mas tam takuto retaz
nejaky program -> virtualny COM port driver -> USB driver -> USB elektricky -> Atmel16U konvertor -> COM port -> ten tvoj hlavny Atmel v nom je nejaky bootloader a ten nieco robi.
Prijemne hladanie :) Ja si myslim ze arduino je max. pre deti. :)

Flashoval jsem jen hlavní Atmel. Ten 16U2 jsem nechal být, to je jen převodník USB-232.
Jak už píše Jirka44, není to bug ale feature :-)

Ja si myslim ze arduino je max. pre deti. :)

dyť jo, já jsem si ho pořídil na hraní (teď mi bylo 50) :-)

Tohle jsi četl?

The problem was in the bootloader burned in the Atmega2560, just upgrading the IDE is NOT sufficient to solve the problem, you must upgrade the bootloader on the CPU using an AVR ISP programmer or similar.

https://code.google.com/p/arduino/issues/detail?id =392

jo, a není to bug, je to vlastnost - je to určeno k přepnutí do režimu "monitor".

http://www.avr-developers.com/bootloaderdocs/index .html

EDIT: nejjednodušší řešení tam vynašel jeden diskutující: mezi vykřičníky dal mezery;-)

Asi tak - bootloader jsem flashnul přes PonyProg a paralelní port, protože v Arduino IDE to nešlo. Po flashnutí to vyhlásilo error - neshodu na 3e000 a Arduino bylo mrtvý. Pak jsem vygooglil, že USBtiny neumí flashovat přes 64k. Takže jsem oprášil starou metodu, která mi Arduino oživila. Ale ačkoliv v těch diskusích píšou, že "!!!" už to neshazují, zjevně to nechodí. Takže používám metodu "per partes" - pošlu na displej string s "!!" na konci a pak dám lcd.write(0x21); a chodí to.

Zkoušel jsem ten monitor (na 115200 baud) a opravdu to chodí tak jak to ten týpek popisuje.

Zpět do poradny Odpovědět na původní otázku Nahoru