APP2 - SNE CODE / Mbed 2 deprecated Demo_PWM

Dependencies:   mbed

Committer:
Kurogami
Date:
Tue Oct 16 14:03:14 2018 +0000
Revision:
0:1d39bf0af16b
Child:
1:c92ac0a9d3d7
v1;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kurogami 0:1d39bf0af16b 1 /************************************************************/
Kurogami 0:1d39bf0af16b 2 /* Exemple à destination de APP2 de l'année 2018/2019 */
Kurogami 0:1d39bf0af16b 3 /* Ne pas diffusé hors de la classe sans accord préalable */
Kurogami 0:1d39bf0af16b 4 /* Auteur : Thomas LINTANF */
Kurogami 0:1d39bf0af16b 5 /************************************************************/
Kurogami 0:1d39bf0af16b 6
Kurogami 0:1d39bf0af16b 7 #include "mbed.h"
Kurogami 0:1d39bf0af16b 8
Kurogami 0:1d39bf0af16b 9 /* Pin assignement */
Kurogami 0:1d39bf0af16b 10 DigitalIn BP1(PC_13);
Kurogami 0:1d39bf0af16b 11 PwmOut pwm(PA_1); // On definie l'objet pwm qui appartient à la classe PwmOut on met en paramètre la broche de sortie
Kurogami 0:1d39bf0af16b 12 // /!\ Attention : La broche ne doit pas être utiliser ailleur (DigitalOut par exemple) /!\
Kurogami 0:1d39bf0af16b 13
Kurogami 0:1d39bf0af16b 14
Kurogami 0:1d39bf0af16b 15 int main(void)
Kurogami 0:1d39bf0af16b 16 {
Kurogami 0:1d39bf0af16b 17
Kurogami 0:1d39bf0af16b 18 pwm.period_ms(10); // On régle la période de la PWM, ici en millisecondes rappel P=1/f ici : P=10 ms f=100hz
Kurogami 0:1d39bf0af16b 19 // (periode -> secondes, peridode_ms -> millisecondes et periode_us -> microsecondes)
Kurogami 0:1d39bf0af16b 20 // /!\ Attention : ne définir qu'une seule fois et hors du while(1) /!\
Kurogami 0:1d39bf0af16b 21
Kurogami 0:1d39bf0af16b 22 pwm.write(0.5); // On initialise le rapport cyclique à 50 %, la méthode write prend un float compri entre 0 et 1 qui
Kurogami 0:1d39bf0af16b 23 // repésente le rapport cyclique. Il exite d'autre méthode pour définir le rapport cyclique en définissant
Kurogami 0:1d39bf0af16b 24 // la durée a l'état haut mais
Kurogami 0:1d39bf0af16b 25 while(1)
Kurogami 0:1d39bf0af16b 26 {
Kurogami 0:1d39bf0af16b 27 if(!BP1)
Kurogami 0:1d39bf0af16b 28 {
Kurogami 0:1d39bf0af16b 29 pwm=pwm.read()+0.1 // ici pwm= **** equivaut à pwm.write( **** )
Kurogami 0:1d39bf0af16b 30 // pwm.read() renvoie la valeur actuelle du rapport cyclique sous forme d'un entier compri entre 0 et 1
Kurogami 0:1d39bf0af16b 31
Kurogami 0:1d39bf0af16b 32 if(pwm>=1) // pwm ici et dans un calcule est équivalent à pwm.read()
Kurogami 0:1d39bf0af16b 33 { // Le if ici est pour empécher d'avoir un rapport cyclique supérieur à 100% (physiquement et mathématique
Kurogami 0:1d39bf0af16b 34 pwm=1; // c'est pas possible. Du coup si il y a dépassement on fixe la valeur à 1 -> 100 %
Kurogami 0:1d39bf0af16b 35 }
Kurogami 0:1d39bf0af16b 36 }
Kurogami 0:1d39bf0af16b 37 }
Kurogami 0:1d39bf0af16b 38 }