Доброе время суток, господа форумчане!
Вчера возникла необходимость запустить на железке сторожевой таймер. Контроллер LPC2146. Так вот чтобы установить в счетный регистр сторожевого таймера заданное значение необходимо в определенный регистр записать подряд две константы. В моей железке подряд записать получается редко, т.к. с частотой 44кГц срабатывает прерывание. После того как прерывание срабатывает в момент когда первая константа была записана в геристр управления сторожевого таймера, железка сбрасывается. Следовательно на время записи констант нуно отключить прерывания. Посмотрел как отключить прерывания и обнаружил что функции __disable_irq() и __enable_irq() в user mode не работают.... На форуме у Keil`a нашёл тему про то как используют software interrupt для того чтобы отключать прерывания.... Ну что то мне это не очень нравится. Потому как железка моя воспроизводит звук и не хотелось бы создать фазовый шум частоты дискретизации из-за того что появилась необходимость юзать сторожевой таймер....
Короче говоря проблему эту я решил, но вот просто интересно нет ли другого способа отключить прерывания в user mode.