Salut,
Je suis juste entrain de jeter un œil à la PWM avec un PIC16F88.
J'ai suivis la datasheet en détail qui m'a donnée le code suivant :
Code://---------------------------------E/S et variables generales--------------------- #include <htc.h> #include "delay.h" void sdc(int dc); //-------------------------------Fonction principale------------------------------ void main(void) { // Initialisation des pattes du microcontroleur PORTB=0; TRISB = 0; PORTB=0; CCP1CON = 0; // On arrête le module PWM TMR2 = 0; PR2 = 99; // PR2=99 pour avoir une fréquence PWM de 20kHz T2CON=0b00000100; // Prescale value=1 et Timer = ON CCP1CON=0b00001100; //Mise en ON du module PWM sdc(50); // Met le rapport cycle à 50% while(1) {} } void sdc(int dc) { dc=500*dc/125; CCP1Y=dc; CCP1X=dc>>1; CCPR1L=dc>>2; }
J'ai donc simulé cela pour voir si le code fonctionnait.
Quartz : 8MHz
Le problème, c'est qu'il n'y a aucun changement d'état sur la patte RB0.
-----