Les différences entre le C standard et le C Arduino
Batpillet
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonsoir,
Je suis en première et je dois préparer un projet qui soulève les différences entre les langages C standard et C Arduino. J'ai beau chercher je ne trouve pas grand chose... J'en appel à ceux qui connaissent un peu cette plateforme. Pour l'instant tout ce que je sais c'est que le C Arduino est une simplification du C standard avec certaines limitations.
En espérant pouvoir m'aider,
cordialement Baptiste
Je suis en première et je dois préparer un projet qui soulève les différences entre les langages C standard et C Arduino. J'ai beau chercher je ne trouve pas grand chose... J'en appel à ceux qui connaissent un peu cette plateforme. Pour l'instant tout ce que je sais c'est que le C Arduino est une simplification du C standard avec certaines limitations.
En espérant pouvoir m'aider,
cordialement Baptiste
A voir également:
- Les différences entre le C standard et le C Arduino
- Différence entre tcp et udp - Guide
- Difference entre million et milliard - Accueil - Technologies
- Pilote son standard - Télécharger - Pilotes & Matériel
- Difference entre mode avion et donnees mobiles - Guide
- Difference entre mb et mo ✓ - Forum Matériel & Système
2 réponses
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 ?
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 ! :)
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,
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,
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...
Perso je le vois demain donc j'essayerai d'y penser