User Manual
128
změnit názvy adresářů v souboru makefile! Jinak se kompilátoru nepodaří najít
tyto soubory!
o Zapomněli jste někde v programu středník?
o Chybí v programu něco důležitého nebo je nadbytečné?
o Dodržovali jste správnou syntaxi jazyka C? Kromě komentářů a obvyklých
formátovacích pravidel pro mezery a tabulátory, psaní různých variant symbolů je
pro kompilátor jazyka C vše ostatní relevantní. Pokud tAto příručKa obsahuje
chybY, nemusí čtenář správně pochopit význam textu! Kompilátory nepovolují
žádné chyby a mohou generovat obrovské množství chyb při vzniku malá
chybičky. Bohužel kompilátor nemá automatickou opravu chyb, srovnatelnou s
námi lidmi ...
14. Moje programy stále nefungují a robot neposlouchá moje povely - co je špatně?
• Nemám ponětí! ;-) Při požadavku na podporu musíte být konkrétnější v popisu svých
problémů. Často dostáváme dotazy typu "Proč tento program nefunguje?". Co s tím.
Samozřejmě potřebujeme trochu podrobnější popis toho, co program má dělat a co na
něm nefunguje! V opačném případě se rychle ukáže, že se otázka změnila na kvíz ...
• Obvyklé chyby začátečníků jsou:
o Přidání středníku na špatné místo – např. uzavření smyčky nebo výrazu if. Často
umožníte vložení symbolu středník tam, kde nebude fungovat tak, jak jste si
představovali!
o Vytváření konstrukce if/else s vyhodnocením na nesprávných místech – to se
může snadno stát, pokud je špatná struktura odsazování zdrojového textu.
o Použití nesprávného datového typu pro proměnné – např. datový typ uint8_t může
akceptovat hodnoty v rozsahu od 0 do 255, ale nelze jej použít pro počítání až do
hodnoty 1500! Pro počítání tak vysoko budete muset použít datový typ uint16_t!
Datový typ uint8_t také nebude akceptovat záporné hodnoty. Pro práci se
zápornými hodnotami budete potřebovat znaménkový datový typ např. int8_t!
Zkontrolujte přehled všech datových typů na začátku krátkého intenzivního kurzu
jazyka C!
o Zapomenutí na nekonečnou smyčku na konci programu – pokud tato nekonečná
smyčka chybí, může váš program vytvářet podivné výsledky.
o Používáte neblokovaný režim pro funkce "přesun" nebo "otáčení", ale zřídka
voláte funkci "task_motionControl" nebo "task_RP6System"! Možná váš program
obsahuje dlouhé přestávky generované funkcí mSleep. Při použití neblokovaného
režimu funkcí "přesun" a "otáčení" nebo ACS musíte pro všechna zpoždění delší
než přibližně 10 milisekund použít stopky! Funkce mSleep a další blokující funkce
by neměla být používána v kombinaci s neblokujícími funkcemi! Přečtěte si,
prosím, znovu kapitolu o knihovně RP6Library pro upřesnění podrobnosti a
prostudujte ukázkové programy!
o Před novou kompilací vždy pamatujte na uložení změněných zdrojových textů
programu! V opačném případě bude kompilátor překládat předchozí nezměněné
verze uložené na vašem pevném disku! V případě pochybností můžete provést
příkaz MAKE CLEAN a znovu provést kompilaci projektu!