Outils pour utilisateurs

Outils du site


arduinoisr

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
arduinoisr [2020/01/20 21:11]
bvandepo
arduinoisr [2020/01/27 16:43] (Version actuelle)
bvandepo
Ligne 279: Ligne 279:
 Le signal numérique a générer sur la broche est généralement issu d'une valeur sur plusieurs bits qui est **sérialisée**. Ceci revient, à chaque période bit, à extraire la valeur du bit (depuis une variable par exemple) et a appliquer un signal dépendant de ce bit sur la broche. Le signal numérique a générer sur la broche est généralement issu d'une valeur sur plusieurs bits qui est **sérialisée**. Ceci revient, à chaque période bit, à extraire la valeur du bit (depuis une variable par exemple) et a appliquer un signal dépendant de ce bit sur la broche.
  
 +
 +
 +=====Programme d'​exemple=====
 +<file cpp exemple.ino>​
 +
 +
 +//macro à activer pour afficher des infos de debug dans le programme, la commenter sinon
 +//#define DEBUG
 +
 +    //int led = A2; //si le shield RS232 est présent ​
 +    int led =   3; //si le shield RS232 n'est pas présent, pour utiliser la led de la carte UNO
 +    // the setup routine runs once when you press reset:
 +    void setup() {                ​
 +      // initialize the digital pin as an output.
 +      pinMode(led,​ OUTPUT); ​    
 +       ​Serial.begin(9600); ​
 +      Serial.println("​Hello,​ world?"​);​ // Envoi de la chaîne terminée par un saut de ligne
 +   
 +    }  ​
 +     ​unsigned int compteur=0;
 +    // the loop routine runs over and over again forever:
 +    void loop() {
 +      /*
 +      compteur=compteur+1;​
 +      digitalWrite(led,​ HIGH); ​  // turn the LED on (HIGH is the voltage level)
 +      delay(3); ​
 +        Serial.println("​+"​);​ // Envoi de la chaîne terminée par un saut de ligne
 +      ​
 +      //if (false)// wait for a second
 +      {
 +        digitalWrite(led,​ LOW);    // turn the LED off by making the voltage LOW
 +       ​delay(200); ​              // wait for a second
 +       ​Serial.println("​."​);​ // Envoi de la chaîne terminée par un saut de ligne
 +
 +      }
 +
 +      Serial.println(compteur);​
 +*/
 +
 +#ifdef DEBUG
 +  Serial.println("​je debuggue"​);​
 +#endif
 +  ​
 +/*
 +
 +char car;
 +  if (Serial.available()>​0){
 +         car = Serial.read();​
 +         if ((car%2)==0) //est ce que le code ascii est pair?
 +           ​digitalWrite(led,​ HIGH); ​  
 +         else
 +           ​digitalWrite(led,​ LOW);   
 +           
 +
 +  }
 +  */
 +
 +  /* génère un signal de fréquence 102kHz)
 + ​digitalWrite(led,​ HIGH); ​
 + ​digitalWrite(led,​ LOW);    ​
 + */
 +
 +
 + //la broche 3 de l'​arduino est connectée au bit 3 du port D
 +
 +   /* génère un signal de fréquence 841.5kHz)
 +    PORTD|=0x8; // met à 1 le bit 3 du port D
 + ​PORTD&​= ~0x8;  // met à 0 le bit 3 du port D
 +    */
 +
 +
 +/* génère un signal de fréquence 2,​664MHz) ​   ​
 +    while(1){
 + ​PORTD|=0x8;​ // met à 1 le bit 3 du port D
 + ​PORTD&​= ~0x8;  // met à 0 le bit 3 du port D
 +    }
 +    */
 +
 +// génère un signal de rapport cyclique 50% de fréquence 2MHz)    ​
 +while(1){
 + ​PORTD|=0x8;​ // met à 1 le bit 3 du port D
 + ​__asm__("​nop\n\t"​); ​
 + ​__asm__("​nop\n\t"​); ​
 + ​PORTD&​= ~0x8;  // met à 0 le bit 3 du port D
 +    }
 +
 +    ​
 +    }
 +
 +
 +</​file>​
arduinoisr.txt · Dernière modification: 2020/01/27 16:43 par bvandepo