Цитата(Ivan_Kov @ Feb 6 2007, 12:27)

Цитата(Doka @ Feb 6 2007, 12:21)

... А битовые поля каждый раз описывать надо....
Почему это каждый раз? один раз описал формат для конкретного регистра, и используй сколько хочешь.
А в случае с масками, это надо каждый раз при использовании учитывать расположение битов.
ок. 1:1 =)
ибо биты маски тоже через #define определить можно:
Код
#define DMAINT0 (1<<2) /* IFR1 */
#define DMAINT1 (1<<9) /* IFR0 */
ну а по поводу начального вопроса: думаю тут еще играют роль другие факторы:
описал я например регистр в пространстве ввода-вывода (уже существующий) как:
Код
#define DMA_CSSA_L0 (*(volatile ioport unsigned int *)(0x0C04)) /* DMA Channel 0 Source Start Address, lower bits, register */
и потом его спокойно юзаю через всякие:
Код
#define SETBIT(REG,BIT) REG |= (BIT)
как для того же самого декларировать битовые поля - не было времени разбираться. А дальше - просто привычка)