Bonjour,
me revoila, encore avec un nouveau sujet sur le PIC18F...(je teste un peu toute les fonctions de mon PIC) et là je mets en oeuvre le module PWM...
J'utilise la librairie C18 qui permet de configurer simplement et rapidement ce module, et après mon premier test, ça marche super; voila mon code:
En sortie j'ai un signal à rapport cyclique variable de fréquence 9,690 KHz, et donc une tension continue variable...c'est marrantCode:void main (void) { init_uc(); //Appel SP Initialisation du microcontroleur config_int(); T2CON=0x05; //Mise en fonctionnement du Timer 2 while(1) { OpenPWM1(0x80); //period(de x00 à xff -> PWM period=[(period)+1]x4xTOSCxTMR2 prescaler for(i=0;i<128;i++) { SetDCPWM1(i); //i=Dutycycle->10-bit number<9:0> ->PWMdutycycle=(<9:0>)xTOSC Delay_ms(5); } for(i=127;i>0;i--) { SetDCPWM1(i); Delay_ms(5); } }//Fin While(1) }//Fin Programme Principal
C'est bien, mais j'ai mis des valeurs au "PIF" pour les paramètres, et je n'arrive pas à faire la relation entre ce que j'ai mis et le signal de sortie...
j'ai quand meme 2 formules:
PWM period=[(period)+1]x4xTOSCxTMR2 prescaler
Dutycycle->10-bit number<9:0> ->PWMdutycycle=(<9:0>)xTOSC
Pour information, j'ai un quartz de 20Mhz, et le prescaler du timer2 est de 4..
Si vous pouviez m'expliquer...
merci d'avance
Nicolas
-----