Salut tout le monde
Je suis encore débutant en programmation de microcontrolleur et travaille avec mplabx avec hi-tech comme compilateur.
Le code ci-dessous est celui d'une routine PWM qui fonctionne avec un rapport cyclique 50% et dont la sortie RC2 est liée à un oscilloscope. Le code du programme a été compilé avec succès ainsi que la simulation du circuit sur PROTEUS ISIS. Le problème est que l'oscilloscope n'indique pas de signal.
#include <htc.h>
__CONFIG( HS & WDTDIS & PWRTEN & WRTEN & UNPROTECT );
#define _XTAL_FREQ 20000000
void main(void)
{
unsigned int DutyCycle=0;
TRISC2 = 0; // Make CCP1 pin as output
CCP1CON = 0x0C; // Configure CCP1 module in PWM mode
PR2 = 0xFF; // Configure the Timer2 period
T2CON = 0x01; // Set Prescaler to be 4, hence PWM frequency is set to 4.88KHz.
T2CON |= 0x04; // Enable the Timer2, hence enable the PWM.
CCPR1L =DutyCycle>>2;
CCP1CON &=0xCF;
CCP1CON |=(0x30&(DutyCycle<<4));
__delay_ms(5);
DutyCycle=511;
CCPR1L =DutyCycle>>2;
CCP1CON &=0xCF;
CCP1CON |=(0x30&(DutyCycle<<4));
TMR2IF=0;
while(1)
{
}
}
Merci d'avance pour votre aide pour faire fonctionner cette routine.
-----