Hello,
Dans le source ci-dessous, le changement de vitesse de la PWM (code trouvable un peu partout sur le web) affecte la gpio 13, celle de la LED_BUILTIN gpio 13). Le programe est simple, la LED_BUILTIN clignote, et si un CR ou un LF arrive sur le port série, ça accélère la fréquence des PWM des gpio 5 et 6. Hélas, une fois le changement effectué, la led ne clignote plus... Le programme continue normalement, les octets envoyés sur le port série continuent de s'afficher (après un CR ou LF), c'est juste que la led ne change plus d'état. ![]()
Quelqu'un serait au courant d'une relation quelconque entre la gpio 13 et le registre TCCR0B?
#if !defined(AVR_ATmega328P)
#error this program is for AVR ATmega328P only (UNO, Nano >= v3.0, ...)
#endif
#define PWM_PIN 3
#define console Serialbool boosted = false;
char received_char;void setup()
{
pinMode(LED_BUILTIN, OUTPUT);
pinMode(PWM_PIN, OUTPUT);
analogWrite(PWM_PIN, 0x80); // perfect square on PWM's pin
console.begin(9600);
}void loop()
{
if(millis() & 0x100)
digitalWrite(LED_BUILTIN, 0);
else
digitalWrite(LED_BUILTIN, 1);while(console.available())
{
received_char = console.read();
console.write(received_char);
if((received_char == '\n') || (received_char == '\r'))
if(boosted == false)
{
TCCR0B = (TCCR0B & B11111000) | B00000001; // for D5 D6 PWM frequency of 62500.00 Hz
boosted = true;
}
}
}
speedUpPWM.ino (881 Bytes)