Szanowni porad¼cie co¶ bo szlag jasny trafi. Znam jêzyk C mo¿e nie jak haker ale sobie radzê, z tego tez powodu i tego ¿e C jest uznanym jêzykiem programowania zdecydowa³em siê na programowanie uProców (ATMEGA) w C. Okazuje siê ¿e znac jêzyk to piku¶, najciekawsze to nauczyæ siê ( i to dos³ownie) kompilatora. Ten skurczybyk nie daje mi spokoju. Co jaki¶ czas daje o sobie znaæ jego nieobliczalno¶æ. Jak tu pisaæ programy jak kompilator swoimi widzimisiami pieprzy (tak PIEPRZY) mi w kodzie. Dla przyk³adu:
while(1) { alarm=204; lcdliczba(alarm); _delay_ms(200); lcdliczba(178); _delay_ms(210); _delay_ms(230); beep(); }
Pêtla nieskoñczona,powiem tylko ¿e lcdliczba to procedura z moich obs³uguj±cych LCD 2x16 wy¶wietlaj±ca liczbê, na koñcu buzzer pipczy. Dzia³a to tak ¿e na LCD-ku dostajê 204 które sobie mruga ( a w³a¶ciwie faluje bo przy takich szybkich zmianach tak to wygl±da). i nic wiêcej. Wiêc pytam JAKIM KURCZE PRAWEM !!! Oczywi¶cie jak wypierniczê optymalizacjê (domy¶lne "s" zmianiam na "0") to leci dwie liczby jedna za drug± i pipczy mi buzzer wiêc dzia³a tak jak powinien. Dodam ¿e ¿adne po¶rednie opcje optymalizacji nie dzia³aj± - tylko ca³kowite wy³±czenie. Czy jest jaki¶ sposób na takie pisanie kodu ¿eby ten wariat kompilator mi nie pitoli³? Wy³±czenie optymalizacji wiadomo nie wchodzi w grê bo kod siê robi w cholerê du¿y. £atwiej siê pisze w C szczególnie co¶ wiêkszego ale widzê ¿e jednak assembler rz±dzi.
Rafa³