Všetko funguje bez problémov, pokým sú optimalizácie nastavené na (-O0). Pokiaľ použijem iné nastavenie optimalizácií, program sa ,zasekne" v slučke while, a neopustí ju ani vtedy, keď sa premenna=0.
Viete mi poradiť ako a čo nastaviť, resp. zmeniť, aby to fungovalo správne?
Skúšal som použiť pred definíciu premennej ,volatile", taktiež som skúšal do slučky while dať smerník na premenna, ale nepomáha nič.
Dalo by sa nejako zakázať optimalizácie len pre časť kódu?
Ďakujem za vopred rady, mňa už nič nenapadá…
administrator: přejmenováno z "Problém s optimalizovaním premennej"
Volatile som už skúšal, ale nepomohlo. Mám taký pocit, že chyba nie je s premennou, ale skôr s cyklom while - akoby netestoval premennú v každom cykle, ale nejako celú podmienku jednoducho ignoroval…
Inak to zapojenie a a. komparátor je v poriadku, detekujem tým prechody nulou (alebo po zmene nastavenia maximum) napätia na fáze v sieti.
volatile tam nutně musí být. Pokud to nestačí, je chyba ještě někde jinde, ale bez volatile to optimalizace vyhodí zaručeně. Např. jsi při zkoušce doplnil volatile ale nedostatečně vyčistil překlad, takže to použilo starý kód.
Asi bola naozaj podobná chyba. Aj som si myslel, že zdroj chyby je zasa medzi klávesnicou a stoličkou
Ďakujem všetkým za rady, ani neviete ako Ste mi pomohli.
Inak je to program do riadiacej jednotky MIG/MAG zváračky, tak ak sa mi to podarí doviesť do úspešného konca, zavesím to sem.