Quelques remarques:
- Dans le setup, l'état des broches n'est pas fixé donc clock et reset sont dans un état indéterminé
- la variable intervalle_horloge n'est pas initialisée
- Micros() est mal utilisée pour tester un hors temps
- curieusement tu dis que delayMicroseconds(1) est un problème alors que delay(1000) n'en est pas un. Personnellement, j'aurais dis le contraire. en effet delayMicroseconds bloque le programme pendant un temps négligeable alors que delay(1000) bloque le programme pendant une seconde
Suggestion pour Micros()
for (int i=0;i<199;i++)
{
// Signal carré
intervalle_horloge = Micros();
if((micros()> intervalle_horloge + 8)
{
etat_horloge=!etat_horloge;
digitalWrite(horloge_4040, etat_horloge);
intervalle_horloge = micros();
}
}
Maintenant, tu cherches à faire des impulsions de quelques µs et tu utilises digitalWrite qui est une fonction trèèèès inefficace. Tu devrais regarder de ce coté.
http://forum.arduino.cc/index.php/topic,46896.0.html
https://code.google.com/p/digitalwritefast/downloads/list