

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?
Tohle jsi četl?
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.
Mam pocit, ze jsem na to taky kdysi narazil, ale novy firmware to poresil.
Zkousel jsi treba tohle?
lcd.print("Hello, World!!\x21");
Aha, ted mi doslo, ze to je blbost, zapomen na to :)