Si estás pensando en un reloj de precisión para una aplicación olvídate del reloj por soft, no es viable en una aplicación real. El reloj se va mucho de tiempo y tienes otros problemas, para ese caso es mejor usar un RTC como el DS1307.
Si lo vas a usar para algo que da igual más o menos la estabilidad y versatilidad, entonces puedes usar la implementación por soft.
Dicho esto, en PBP tambie´n puedes usar interrupciones del timer para contar segundos, Tienes que cargar el timer con un valor tal que cuando pase por cero sea un segundo o multiplo de un segundo. Tambien puedes usar un chequeo del flag en vez de la interrupcion. A patir de obtener un segundo vas incrementando el resto de variables: minutos, horas, etc.
Saludos
Ricky