ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 ноября
489634 Топик полностью
Vladimir Ljaschko (20.02.2014 10:10, просмотров: 260) ответил Vladimir Ljaschko на Спасибо. А создам по счетчику на каждый флаг.
Оппа. "Нашел ошибку компилятора". Гляньте плз.  __no_init u8 emc_token; __no_init u8 swim_token; __no_init u8 illopf_token; __no_init u8 iwdg_token; __no_init u8 wwdg_token; u8 dat; void CheckReset(void) { dat=RST_SR; if (dat==0) { emc_token=0; swim_token=0; illopf_token=0; iwdg_token=0; wwdg_token=0; return; } if (dat&RST_SR_EMCF) emc_token++; if (dat&RST_SR_SWIMF) swim_token++; if (dat&RST_SR_ILLOPF) illopf_token++; if (dat& RST_SR_IWDGF) iwdg_token++; if (dat&RST_SR_WWDGF) wwdg_token++; } при RST_SR = 0x0a не происходит инкремент ни одного маркера. И дизассемблер странный 00C171 2707 JREQ ??CheckReset_2 if (dat&RST_SR_SWIMF) swim_token++; 00C173 C60F46 LD A, swim_token 00C176 4C INC A 00C177 C70F46 LD swim_token, A if (dat&RST_SR_ILLOPF) illopf_token++; ??CheckReset_2: 00C17A C650B3 LD A, RST_SR 00C17D 72010E110B BTJF dat, #0, ??CheckReset_3 00C182 A504 BCP A, #?b4 00C184 2707 JREQ ??CheckReset_3 if (dat&RST_SR_ILLOPF) illopf_token++; 00C186 C60F47 LD A, illopf_token 00C189 4C INC A 00C18A C70F47 LD illopf_token, A if (dat& RST_SR_IWDGF) iwdg_token++; ??CheckReset_3: 00C18D C650B3 LD A, RST_SR 00C190 72010E110B BTJF dat, #0, ??CheckReset_4 00C195 A502 BCP A, #?b2 00C197 2707 JREQ ??CheckReset_4 if (dat& RST_SR_IWDGF) iwdg_token++; 00C199 C60F48 LD A, iwdg_token 00C19C 4C INC A 00C19D C70F48 LD iwdg_token, A if (dat&RST_SR_WWDGF) wwdg_token++; ??CheckReset_4: 00C1A0 C650B3 LD A, RST_SR 00C1A3 A401 AND A, #?b1 00C1A5 88 PUSH A 00C1A6 C60E11 LD A, dat 00C1A9 A401 AND A, #?b1 00C1AB B701 LD ?b1, A 00C1AD 84 POP A 00C1AE B501 BCP A, ?b1 00C1B0 2707 JREQ ??CheckReset_5 if (dat&RST_SR_WWDGF) wwdg_token++; 00C1B2 C60F49 LD A, wwdg_token 00C1B5 4C INC A 00C1B6 C70F49 LD wwdg_token, A } ??CheckReset_5: 00C1B9 81 RET