Salutations
Je suis en train de bricoler avec un pic16f84. J'ai un "buzzer" de carte mere sur la sortie 5 port B de mon µC
J'ai codé une petite fonction sensée envoyer sur cette pin un signal de fréquence f et de durée d :
je ne comprends pas pourquoi, mais ma fréquence étant à peu pres bonne, j'ai je ne sais quel probleme avec la durée... elle varie en fonction de ma fréquence, et parfois meme, en dépit de tout autre facteur ...Code:void sound(uns16 f, uns16 d) { int i; uns16 p = 50000 / f; // une demi période en dizaines de µscondes uns16 d2 = d * 100; // d(ms) --> d2(10µs) uns16 p2 = p * 2; // p2 = période du signal (µs) uns16 duree = d2 / p2; //nombre de périodes for(i=0; i<=duree; i++) { PORTB.5 = 1; delay_10us(p); PORTB.5 = 0; delay_10us(p); } }
J'ai vérifié mon raisonnement quatres ou cinq fois, mais je ne comprends pas pourquoi il ne fais pas ce que je lui demande.
Sauriez vous maider ?
merci, ++ Tix.
-----