Si, esto es muy antiguo, pero me acorde por casualidad del tema y queria comentar la solucion por la que opte y que funciona muy bien.
Como decia en un post anterior, uso el Timer1 para generar un ID aleatorio. Ademas se genera automaticamente la primera vez que se enciende el dispositivo y solo tengo que incluir un par de lineas el inicio del programa. Se ejecutara la primera vez y nunca mas.
Desde el momento en que se alimenta el PIC, el Timer1 (y todos sus timers) empiezan a incrementar, a la velocidad que tenga configurado. No importa si hay una interrupcion activada, el timer corre igualmente. Cuando se desborda vuelve a comenzar desde 0.
Si nuestro dispositivo tiene un interruptor de encendido y un pulsador, la primera vez que se presione el pulsador se lee el valor del Timer1 y se almacena en la EEPROM. YA TENEMOS ID!
El problema es
cuando no tenemos interruptor de encendido, y el circuito funciona mientras tengamos el boton presionado, como es el caso de un mando a distancia. En este caso el proceder previamente descrito no funcionaria. Pero si funcionaria grabar el valor del Timer1 en el momento que se suelta el pulsador. Aunque en el momento que se suelta el pulsador nos quedamos sin alimentacion, nuestro PIC ya no podra grabar en la EEPROM, por lo que habria que poner un condensador que nos de unos milisegundos mas de "vida" para permitirle al PIC detectar que se solto el pulsador, leer el timer y grabar en EEPROM. Quizas en el momento que se detecta que se suelta el pulsador se puede poner al PIC a correr a la velocidad mas baja de su oscilador interno para que consuma menos.
El sistema con un interruptor funciona, y funciona de maravilla. El otro no lo he probado, pero deberia ir igual de bien.
Esto lo cuento por que recuerdo hace mucho un post de como generar un numero realmente aleatorio, y se hablaba de un pin ADC al aire, captando interferencias, y otras soluciones similares.
Esta solucion del Timer me parece muy directa y realmente aleatoria, siempre que intervenga el usuario presionando un boton (aunque podria ser algun otro tipo de interaccion).
Si le sirve a alguien bien, y sino, pues me sirve a mi para escribir algo en el foro que llevo desaparecido mucho tiempo

Salu2