Не могу понять почему все работает

Пишу в IAR4.42
Создал класс таймер.
Создаю 3 экземпляра класса Timer в Main()
для каждого экземпляра вызываю функцию bool Timer::Init(AT91PS_TC TC_pt, unsigned int Timer_ID, unsigned int Mode, ptrIRQ_fn pIRQTx) которая запускает соответствующий таймер на заданое время.
Вот подобные строки с регистрами только для записи присутствуют в функции Init.
AT91C_BASE_PMC->PMC_PCER = ( 1UL<<Timer_ID ) ;
Так вот. Если эта функция вызывается последовательно для 3х таймеров, то получается каждый последующий должен затереть разрешение для предыдущего...
...А все таймеры работают!!! В чем дело и как правильно работать с регистрами Write only???