Bonjours !
svp je veux creer un code qui me donnera sur la broche C0 de mon PIC16F876A un signal carre TTL de 1 us comme periode (1MHz)
mon Pic fonctionne avec un oscillateur de 20 MHz, j'utilise comme compilateur le CCS PIC C Compiler.
quand je compile le code suivant ca me donne un signale avec une frequence tres faible, 2 ou 3 et quelques KHz...!!
while(1)
{
ouput_high(PIN_C0);
delay_us(1);
output_low(PIN_C0);
delay_us(1);
}
certain me proposeront le truc du NOP mais plutot ce que je veux est creer une fonction qui recevera en parametre un chiffre qui se traduira par la suite en delais en microsecondes et non pas en millisecondes
le signal avec la frequence la plus grande (7 kHz) que j'ai pu obtenir, je l'ai obtenu grace a la fonction suivante :
void delais_perso(int32 x)
{
while(x--);
}
je ne crois pas qu'il existe un code plus optimise que celui la !
ou resite l'incapacite pour generer mon signal de 1us de periode ?
dans mon code, mon pic, mon oscillateur ou dans mon compilateur ?
MErci d'avance
-----