Yo tampoco lo he utilizado nunca y por tanto tampoco no se exactamente como se deberia hacer. Pero se me ocurre lo siguiente.
Mediante una interrupcion, disparas un contador en el flanco ascendente, en el siguiente flanco descendente tomas el valor y lo guardas en una variable, por ejemplo "ton" sin resetear el contador y en el proximo ascendente, guardas el nuevo valor en otra variable, por ejemplo "per" y reseteas el contador y vuelta a empezar. Para obtener el duty cicle solo tienes que calcular el porcentaje de "per" que representa "ton", lo guardas en otra variable, por ejemplo "duty" y ya lo tendrias.
No se si habra un mecanismo mas ortodoxo para hacerlo y si el que te indico sera totalmente fiable, aunque creo que si. Ya nos sacaran de dudas otros foreros mas experimentados en el tema.
Saludos.