Bonjour,

Principe de mesure d'une largeur d'impulsion:

Moi je metterais le signal a mesurer (la largeur) sur la pin INT0 (RB0).
Cette pin permet de générer une interruption lorsque son état passe de 0 à 1 ou (inversément suivant la configuration du bit INTEDG du regsitre INTCON).
Une fois l'interruption INT0 générée, il faut lancer le timer0. Ensuite, il faut changer le bit INTEDG du regsitre INTCON. (De cette facon il y aura une autre interruption lors changement d'état de la pin INT0 1=>0.)
Le timer devra etre configurer de facon a ce qu'il génère une interruption, lors de sont débordement afin de comptabiliser ses débordements.
Une fois que la pin INT repasse à O, il faut arreter le timer0 et regarder combien il y a eu de débordement et à combien il est au moment de son arret. Apres, il suffit de convertir ces valeurs en temps...
(Nombre de débordement * 255 * prescaler) * 4 * Foscillateur => donnera le temps...

Apres, il faut envoyer la valeur sur le un port RS232.

Remarque que le 16F84 ne possède pas de port UART (port série). Il te faudra le simuler...

Voila, il me semble que le tour de la question est faite...

Bon coding,

JOOP