Bonsoir,
J'ai essayé de mettre en place le pwm sur mon 18F4431. Evididement ça parait hyper simple mais ça marche pas
Au début je n'avais pas mis le port B en sortie donc forcément mais là...
Je précise que sur ce pic les il y a 6 pwm de (RB0 à RB5), et que le pin qui m'interesse et RB0 ou RB1 ( je ne sais ce que considere la fonction OpenPWM1 comme pin : RB0, RB1 ?)
Dans ce code je fais donc varier les duty cycle pour faire varier l'intensité de ma led en sortie.
Merci de votre aide!
#include <p18F4431.h>
#include <stdio.h>
#include <timers.h>
#include <pwm.h>
#include <delays.h>
#pragma config OSC = HS
#pragma config CP1 = OFF
void Delay10mS(int x)
{
int i;
for (i=0; i<x; i++) Delay10KTCYx(12);
}
void main (void)
{
int a;
TRISB=0;
OpenTimer2(T2_PS_1_16 & TIMER_INT_OFF);
OpenPWM1(199);
SetDCPWM1(640);
while(1)
{
for(a=0;a<640; a=a+16)
{
SetDCPWM1(a);
Delay10mS(4);
}
for(a=0;a<640; a=a+16)
{
SetDCPWM1(640-a);
Delay10mS(4);
}
}
}
-----