No está perfectamente claro si desea un reloj en tiempo real o un cronómetro (los 40 segundos que menciona).
Puede usar un RTC IC (reloj en tiempo real), como el NXP PCF8563 . Este está disponible en varios paquetes, incluido el antiguo DIL y un muy pequeño DFN .
Pero probablemente no necesite un RTC IC separado. Normalmente se usa porque consume muy poca potencia , y el resto del circuito puede apagarse mientras el RTC sigue funcionando con una batería o supercap. El MSP430, sin embargo, también es un dispositivo de baja potencia, y tiene un oscilador de baja frecuencia que puede ejecutarse en el mismo cristal de 32.768 kHz que usaría para el RTC.
En un proyecto tenía el MSP430 ejecutándose continuamente en un cristal de 32 kHz y, sin embargo, consumía menos de 5 \ $ \ mu \ $ A. Eso es más que un RTC (el PCF8563 solo necesita 250nA), pero será aceptable para muchas aplicaciones.
¿Cuál es tu problema con la interrupción 1s? Si quieres hacer un reloj en tiempo real, necesitarás una clave de tiempo, ya sea generada internamente o proveniente de un RTC externo. Tras la interrupción, puede realizar las actualizaciones necesarias de los contadores de segundos, minutos y horas, y esperar la siguiente interrupción. Incluso podrías trabajar con décimas de segundo , aunque con los 32.768 kHz esto tendrá una desviación menor. Tendría cuatro décimas de segundo o 3277 tics de reloj, seguidos de una décima parte de 3278 tics, para obtener exactamente 1/2 segundo, así que repita este patrón una segunda vez para completar un segundo.