Цитата(kolobochishe @ Dec 9 2015, 15:59)

и т.д. Что нужно дополнительно сделать, чтобы такая замена работала?
Так не получится, потому что pBKLT_TIMER_WIDTH для препроцессора уже одна неделимая лексема и всё что он может с ней сделать разве что заменить целиком.
Удобнее подход, когда набор из четырёх регистров таймера описывается как структура. Тогда TIMER7 можно описать как указатель на такую структуру, а к регистрам обращаться как TIMER7->PERIOD.
Где-то так, по примеру CMSIS для кортексов и без учёта особенностей компилятора.
Код
#define __IO volatile
typedef struct{
__IO uint16_t CONFIG;
__IO uint32_t COUNTER;
__IO uint32_t PERIOD;
__IO uint32_t WIDTH;
}Timer_TypeDef;
#define TIMER0 ((Timer_TypeDef*)0xFFC01600)
...
#define TIMER7 (TIMER0+7)
#define BKLT_TIMER TIMER7
BKLT_TIMER->PERIOD = 0x0000FFFF;
BKLT_TIMER->WIDTH = 0x00007FFF;
Russia est omnis divisa in partes octo.