C'est en effet le cas mais avant j'étais en fils volants aussi et ça fonctionnait sans problème, je pouvais monter à 12Khz et avoir des signaux
carrés mais là 200Hz le truc est déjà en panique.
Genre là : TCCR0B = TCCR0B & 0b11111000 | 0x01; //Timer 0 (PWM pins 5 & 6) + coef_frequence = 50
Bah le résultat est dégoulasse et pourtant je suis que à 747hz ...
20200510_162848.jpg (Taille : 468.64 Ko / Téléchargements : 3)
Edit : Hum, surement une piste ... https://forum.arduino.cc/index.php?topic=76213.0 ( Post #3 )
Ca expliquerait pourquoi le PWM fonctionne à haute fréquence mais pas la méthode manuelle.
Edit 2 : Effectivement ça marche beaucoup mieux avec PORTD ^= _BV(PIND3);
Edit 3 : Et hop avec un ptit :
20200510_175850.jpg (Taille : 503.65 Ko / Téléchargements : 3)
Du coup merci Kissa pour les pistes
carrés mais là 200Hz le truc est déjà en panique.
Genre là : TCCR0B = TCCR0B & 0b11111000 | 0x01; //Timer 0 (PWM pins 5 & 6) + coef_frequence = 50
Bah le résultat est dégoulasse et pourtant je suis que à 747hz ...
20200510_162848.jpg (Taille : 468.64 Ko / Téléchargements : 3)
Edit : Hum, surement une piste ... https://forum.arduino.cc/index.php?topic=76213.0 ( Post #3 )
Ca expliquerait pourquoi le PWM fonctionne à haute fréquence mais pas la méthode manuelle.
Edit 2 : Effectivement ça marche beaucoup mieux avec PORTD ^= _BV(PIND3);
Edit 3 : Et hop avec un ptit :
Code :
if (switch_pola_ph1 == 0)
{
PORTD = (etat_ph1 << PD3);
etat_ph1 = !etat_ph1;
}
else {
etat_ph1 = !etat_ph1;
PORTD = (etat_ph1 << PD4);
}
20200510_175850.jpg (Taille : 503.65 Ko / Téléchargements : 3)
Du coup merci Kissa pour les pistes
T'as un problème, t'veux un ban ?