J'ai quelques questions concernant ce programme en C que j 'arrive pas a bien comprendre. Merci de vos réponses.
1- pourquoi le chiffre 16 pour ceci; je pense on doit commencer par un chiffre quelconque.. short current_duty_1 = 16; // initial value for current_duty_1
2- pourquoi ce signe '!' dans cette ligne, if (!RD0_bit) // if button on RD0 pressed c'est un no logique , not ( juste RD0 est relié a 5V via une resistance de 10k ) a la place on pouvait pas écrire if RD0= 0?
Code : Tout sélectionner
// Exercice PWM PIC16F877A Mikro c
void main()
{
short current_duty_1 = 16; // initial value for current_duty_1
short current_duty_2 = 16; // initial value for current_duty_2
TRISD = 0xFF; // PORTD as input
TRISC = 0x00; // PORTC as output
PWM1_Init(5000); // frequence 5Khz Initialize PWM1
PWM2_Init(5000); //frequence 5khz Initialize PWM2
PWM1_Start(); // start PWM1
PWM2_Start(); // start PWM2
PWM1_Set_Duty(current_duty_1); // Set current duty for PWM1
PWM2_Set_Duty(current_duty_2); // Set current duty for PWM2
while (1) // endless loop
{
if (!RD0_bit) // if button on RD0 pressed
{
Delay_ms(40);
current_duty_1++; // increment current_duty_1
PWM1_Set_Duty(current_duty_1); //Change the duty cycle
}
if (!RD1_bit) // button on RD1 pressed
{
Delay_ms(40);
current_duty_1--; // decrement current_duty_1
PWM1_Set_Duty(current_duty_1);
}
if (!RD2_bit) // if button on RD2 pressed
{
Delay_ms(40);
current_duty_2++; // increment current_duty_2
PWM2_Set_Duty(current_duty_2);
}
if (!RD3_bit) // if button on RD3 pressed
{
Delay_ms(40);
current_duty_2--; // decrement current_duty_2
PWM2_Set_Duty(current_duty_2);
}
Delay_ms(10); // slow down change pace a little
}
}
