Les différences entre le C standard et le C Arduino
Fermé
Batpillet
-
Modifié par Batpillet le 15/03/2015 à 21:11
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 18 mars 2015 à 22:01
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 18 mars 2015 à 22:01
A voir également:
- Les différences entre le C standard et le C Arduino
- Netflix standard avec pub - Accueil - Streaming
- Différence entre tcp et udp - Guide
- Pilote son standard - Télécharger - Pilotes & Matériel
- Différence entre 1 million et 1 milliard - Accueil - Technologies
- Difference entre actif et en ligne sur messenger - Forum Facebook Messenger
2 réponses
Seichiroku
Messages postés
143
Date d'inscription
dimanche 15 mars 2015
Statut
Membre
Dernière intervention
8 novembre 2015
7
15 mars 2015 à 21:13
15 mars 2015 à 21:13
Salut
je suis aussi actuellement amené a utiliser ce logiciel..... veux-tu que je demande a mon prof ?
je suis aussi actuellement amené a utiliser ce logiciel..... veux-tu que je demande a mon prof ?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
17 mars 2015 à 22:06
17 mars 2015 à 22:06
Bonjour,
Je ne connais pas arduino, mais un peu le C standard.
Déjà de quel norme C parles-tu ? ISO C89/90 ou C99 ?
Tu peux commencer par poster un exemple de programme arduino et on peut te dire ce qui n'est pas standard. Qu'en penses-tu ?
Note : pour poster ton code, utilise bien la balise <code c>.
Exemple :
<code c>ici tu mets ton code</code>
Je ne connais pas arduino, mais un peu le C standard.
Déjà de quel norme C parles-tu ? ISO C89/90 ou C99 ?
Tu peux commencer par poster un exemple de programme arduino et on peut te dire ce qui n'est pas standard. Qu'en penses-tu ?
Note : pour poster ton code, utilise bien la balise <code c>.
Exemple :
<code c>ici tu mets ton code</code>
Bonsoir,
Merci de vos réponses :)
Alors pour la norme, je ne la connais malheureusement pas :/
En fait les programmes arduino sont composés de 2 parties: le setup et le loop. (initialisation et boucle comme vous l'aurez compris) c'est pour l'instant la seule différence que j'ai pu constater en comparant avec le langage C.
Voici un exemple de programme qui permet de mesurer en continu tres simplement la température a l'intérieur d'une pièce:
Voici la liste des mots clés chez Arduino : http://arduino.cc/en/Reference/HomePage
Merci de votre aide ! :)
Merci de vos réponses :)
Alors pour la norme, je ne la connais malheureusement pas :/
En fait les programmes arduino sont composés de 2 parties: le setup et le loop. (initialisation et boucle comme vous l'aurez compris) c'est pour l'instant la seule différence que j'ai pu constater en comparant avec le langage C.
Voici un exemple de programme qui permet de mesurer en continu tres simplement la température a l'intérieur d'une pièce:
//Déclaration et initialisation des variables float mesure=0; //Variable pour le stockage mesure retournée par le capteur float tension=0; //Variable pour le stockage de la tension float temperature=0; //Variable pour le stockage de la température float tempmin=100; //Temperature min float tempmax=0; //Temperature max int portana0 = 0; //Numéro du port analogique sur lequel la température est mesurée //Traitements initialisation void setup() { analogReference(INTERNAL); //Permet de fixer la temperature de refernce à 1,1 volt Serial.begin(9600); //initialisation de la liaison série à 9 600 bauds } //Traitements itératifs void loop() { mesure = analogRead(portana0); //Lecture de la valeur fournie par le capteur de température tension = mesure * 1.1 / 1024; //Conversion en tension (en volt) temperature = tension * 100; //Conversion en température (en degré Celsius) if (temperature < tempmin) {tempmin = temperature;} //Calcul temperature mini if (temperature > tempmax) {tempmax = temperature;} //Calcul temperature maxi //Envoi de la tension et des températures au PC par la liaison série pour affichage dans la console Serial.print("Tension : "); Serial.print (tension); Serial.print(" Volts - "); Serial.print("Temperatures :"); Serial.print(" >Actuelle : "); Serial.print (temperature); Serial.print(" >Mini : "); Serial.print (tempmin); Serial.print (" >Max : "); Serial.println (tempmax); //Attente de 5 secondes avant de faire une nouvelle mesure delay(5000); }
Voici la liste des mots clés chez Arduino : http://arduino.cc/en/Reference/HomePage
Merci de votre aide ! :)
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
17 mars 2015 à 22:27
17 mars 2015 à 22:27
Alors déjà :
//Déclaration et initialisation des variables
Pas bon en ISO C89/90. On utilise /*...*/. Mais ok en C99.
Les variables globales sont déconseillées.
void setup()
Prototype partiellement défini. Il vaut mieux mettre : voir setup(void)
Idem pour les autres prototypes.
tension = mesure * 1.1 / 1024;
Les variables sont de type float, mais tu multiplies avec un double. Du coup, conversion en double puis reconversion en float. Il vaudrait mieux n'utiliser que des float (1.1f) ou mettre les variables en double (conseillé sauf raison particulière).
delay(5000);
Ce n'est pas standard.
Voilou pour commencer.
Cdlt,
//Déclaration et initialisation des variables
Pas bon en ISO C89/90. On utilise /*...*/. Mais ok en C99.
Les variables globales sont déconseillées.
void setup()
Prototype partiellement défini. Il vaut mieux mettre : voir setup(void)
Idem pour les autres prototypes.
tension = mesure * 1.1 / 1024;
Les variables sont de type float, mais tu multiplies avec un double. Du coup, conversion en double puis reconversion en float. Il vaudrait mieux n'utiliser que des float (1.1f) ou mettre les variables en double (conseillé sauf raison particulière).
delay(5000);
Ce n'est pas standard.
Voilou pour commencer.
Cdlt,
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
18 mars 2015 à 22:01
18 mars 2015 à 22:01
La différence entre les 2 normes pourrait faire un article complet (d'ailleurs, il y a des blogs qui en parlent). Mais ce qu'on peut dire, c'est que certaines fonctionnalités du C++ ont été portées en C.
Le C ne prévoit pas de manière standard la pause. Les fonctions du type delay(...) s'appuient sur des fonctions systèmes (API windows par exemple).
Cdlt,
Le C ne prévoit pas de manière standard la pause. Les fonctions du type delay(...) s'appuient sur des fonctions systèmes (API windows par exemple).
Cdlt,
15 mars 2015 à 21:21
merci de votre réponse rapide :)
Oui ce serais super si vous pouviez avoir quelques informations sur ces différences car je bloque pas mal sur le sujet :/... En fait je débute en programmation et je ne connais pas très bien les deux langages...
16 mars 2015 à 17:22
Perso je le vois demain donc j'essayerai d'y penser
17 mars 2015 à 12:51