Если обработчик прерывания один на несколько событий, то нужно проверять флаги в регистрах статуса всех событий, которые могут вызвать этот обработчик, выполнять нужное действия в зависимости от того, кто вызвал и сбрасывать флаг. По крайней мере так я понял по поводу STM32.
Часы я вроде запустил, но вроде в даташите упоминалось что они продолжают идти после системного зброса. Апаратный сброс кнопкой RESET должен их сбрасывать? у меня они идут сначала.