пишу:
Код
#define MAX_PHASE 9500UL
#define TDIV 8
#define CONCAT(x,y) x ## y
#define DIVISOR(x) CONCAT(TIMER_CLK_DIV_,x)
#define PRESCALER DIVISOR(TDIV)
#define MAX_OCR (((F_CPU * (MAX_PHASE/TDIV) / 1000000)))
#define TCNT_INIT ((UINT16_MAX + 1UL)- MAX_OCR)
#define TDIV 8
#define CONCAT(x,y) x ## y
#define DIVISOR(x) CONCAT(TIMER_CLK_DIV_,x)
#define PRESCALER DIVISOR(TDIV)
#define MAX_OCR (((F_CPU * (MAX_PHASE/TDIV) / 1000000)))
#define TCNT_INIT ((UINT16_MAX + 1UL)- MAX_OCR)
вроде бы все верно (на странно расставленные скобки в MAX_OCR не обращайте внимания - это я от безысходности расставлял их). однако следующая строка
Код
printf_P(PSTR("SI:%u;%u;%u\n"),200,MAX_OCR,TCNT_INIT);
выводит в консольЦитата
SI:200;242;65294
ума не приложу, в чем дело! F_CPU у меня 11059200UL, ожидаю, что MAX_OCR будет тринадцать тысяч с хвостиком - ан нет

что не так?!