MPLAB X IDE v5.50
zase "som na pokraji psychyckeho zrutenia sa" , lebo uz od 21:00 do 0:30 sa snazim zistit preco while loop podmienka je ignorovana aj v simulatore a aj v online debugu k pripojenemu MCU. Po dlhom hladani na internete ze co robim zle som nic nezistil. Teraz cca o 0:00 som sposobom pokus omyl zistil, ze ak je v podmienke while loop 8bit cislo, tak to funguje. Ak tam ale dam 16, 24 alebo 32 bitove cislo tak je cela podmienka ignorovana a preskoci sa cely while loop akoby podmienka vo while loop bola fail a pritom je true, nakolko hodnota registra je 2 a to je vacsie ako 0.
Kód: Vybrať všetko
//temp1 = 2; // temp1 8-bit while podmienka OK
//temp2 = 2; // temp2 16bit while podmienka ignorovana
//temp3 = 2; // temp3 24bit while podmienka ignorovana
temp4 = 2; // temp4 32bit while podmienka ignorovana
//while (temp1 > 0)
//while (temp2> 0)
//while (temp3> 0)
while (temp4> 0)
{
dalsie instrukcie
}
Tiez som vyskusal, ze 16bit temp2, co nefungovalo som predeklaroval na 8bit cislo a uz to fungovalo.
Tiez som vyskusal, ze while som prepisal na if a v podmienke bolo 16bit cislo temp2 a s if to funguje aj pri 16bit.
Kód: Vybrať všetko
temp2 = 2; // temp2 16bit if podmienka OK.
if (temp2> 0)
{
dalsie instrukcie
}
Co tu robim zle? Preco mi to berie len podmienku s 8bit cislom? While nedokaze spracovat podmienku s registrom vacsim ako 8 bitov? To sa mi zda ako blbost.
Diki vopred za rady.