Arduino DUE Hardware PWM

Ciao a tutti,

sto raffinando il progetto di un quadricottero che ora utilizza un PWM software nella forma seguente applicata ai 4 motori

currTime = micros ( );
digitalWrite(Motor_pin, HIGH);

while (digitalRead (Motor_pin) == HIGH){
    if(speed_motor_1 <= micros() - currTime){
        digitalWrite (Motor_pin, LOW);
    }
}

Questo processo di scrittura viene fatto a 250Hz, ovvero ogni 4 millisecondi, il che mi costringe nel loop principale a fare una piccola busy waiting ma soprattutto essendo un PWM "artigianale" non è robusto e introduce un sacco di limitazioni.

Guardando in giro ho visto che c'è molta confusione sul PWM hardware perciò chiedo se c'è qualcuno che è in grado di aiutarmi a raggiungere il seguente obbiettivo :

  1. Impostare un timer per generare PWM a 250Hz
  2. Calcolare il prescaler
  3. Abilitare l'uscita PWM del timer sui pin 8 9 10 11 che sicuramente hanno la possibilità dell'output PWM hardware

Il goal principale sarebbe quello di avere la possibilità nel loop di poter cambiare il PWM modificando il valore del registro CCR

Grazie a tutti in anticipo per eventuali risposte

Allora, prima di tutto, nella sezione in lingua Inglese si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post ...

... poi, essendo il tuo primo post nella sezione Italiana del forum, nel rispetto del regolamento di detta sezione (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione tutto il su citato REGOLAMENTO ...

... ed infine, in conformità al suddetto regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo

P.S.: Il tuo post è già stato spostato nell'opportuna sezione del forum "Italiano”dove puoi proseguire la discussione.
P.P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione e sistemato il codice, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. :wink: