Utilisation du port PWM.

Toujours dans l'idée de piloter mon aquarium, j'ai besoin d'utiliser le port PWM afin de simuler un éclairage lunaire. Le but du jeu étant de faire varier l'intensité lumineuse de LEDs pour simuler les différentes phases de la lune.

Dans un premier temps, j'ai donc commencer des tests de pilotages de ce port PWM. Son utilisation est relativement simple, il ne faut pas oublier d'initialiser comme il le faut le timer 2.

Les fichiers à inclure dans les projets sont :

#include <pwm.h>
#include <timers.h>

J'utilise ici un Prescaler fixé à 16. Ma plaque de test fonctionne à 48MHz et je désire une fréquence de 10kHz

//Period = (valeur + 1)*4*Tosc*Timer2Prescaler
OpenTimer2(TIMER_INT_OFF & T2_PS_1_16 & T2_POST_1_1);
//Config 1 CCP
SetOutputPWM1(SINGLE_OUT,PWM_MODE_1);
//Ouverture du port PWM1
OpenPWM1(0x4B); //Frequence de 10kHz

Pour faire ensuite varier le rapport cyclique de cette sortie, il suffit d'appeler la fonction SetDCPWM1 en lui passant la nouvelle valeur.