Цитата(MALLOY2 @ Sep 28 2009, 10:46)

токо еще в уарт выбрасываю номер строчки.
А ещё во включённом во все файлы проекта h-файле enum
{ MAIN_C=0, UART_C, MDM_C, и так далее}
и не лениться в начале каждого файла писать
#define THIS_FILE MDM_C
так можно и не только номер строки выбрасывать (под строковое имя файла жалко места, у меня обычно много небольших файлов).
А подстановка любого кода - так это же
ниагарский водопад хотя бы и один из вариантов макроса ATOMIC_CODE в отсутствие gcc-шных расширений
Код
#define ATOMIC_CODE(_statements_4_atomic_execution_) \
do { \
uint8_t _atomic_saved_sreg_ = SREG; \
cli(); \
{ _statements_4_atomic_execution_ } \
SREG = _atomic_saved_sreg_; \
} while(0)
Код
ATOMIC_CODE(
ETIMSK &= ~(1 << OCIE3C);
pf.stop_req = 0;
stb_off();
);
Есть свои недостатки, но работает.
Или тут
http://electronix.ru/forum/index.php?showt...st&p=268643 - всунутая в макрос структура вроде и не "любой код", но тож ведь "не просто условие".