cover image
IdO

Arduino DEL clignotante en pure C

L'IDE Arduino contient un langage simplifié pour développer pour la plateforme Arduino. Ce langage s'appelle Wiring et est une version dialectale simplifiée de C et C++. Les opérations courantes d'entrée et de sortie sont simplifiées, ce qui rend l'environnement idéal pour le prototypage pour les concepteurs et les fabricants.

Mais parfois, vous souhaitez programmer en "vrai" C et utiliser directement la chaîne d'outils AVR. Par exemple, vous pouvez vouloir regarder derrière les scènes ou avoir besoin de programmer une bibliothèque. Il devient alors nécessaire d'utiliser la chaîne d'outils AVR.

Comment programmer une simple DEL clignotante en C pur, c'est ce que je veux montrer dans cet article.

Installation

Afin de pouvoir compiler et exécuter le programme C en code machine AVR, vous devez installer un compilateur croisé, un linker et un uploader pour le microcontrôleur AVR.

Sous Ubuntu Linux, cela se fait en exécutant la commande suivante :

sudo apt-get install gcc-avr binutils-avr gdb-avr avr-libc avrdude make

Ceci installe tous les outils nécessaires au développement de l'AVR C sur votre machine.

Configuration du matériel Arduino

Le programme C suppose que vous avez un Arduino Uno avec une DEL connectée au port 13.

Cette image Fritzing montre la configuration : LED clignotante

Led.c

#include <avr/io.h>

#define F_CPU 16000000
#define BLINK_DELAY_MS 5000

#include <util/delay.h>

int main (void)
{
  // Broche numérique Arduino 13 (broche 5 de PORTB) pour la sortie
  DDRB |= 0B100000 ; // PORTB5

  while(1) {
    // Allumez la DEL
    PORTB |= 0B100000 ; // PORTB5
    _delay_ms(BLINK_DELAY_MS) ;

    // éteint la DEL
    PORTB &= ~ 0B100000 ; // PORTB5
    _delay_ms(BLINK_DELAY_MS) ;
  }
}

Dans cet exemple en C, la DEL s'allume pendant 5000 ms (5 secondes), puis s'éteint à nouveau. Vous devez importer deux fichiers d'en-tête, l'un pour la définition des ports IO et l'autre pour la fonction de la fonction de retard.

Il est important que sous C pur, vous devez calculer la broche exacte sur laquelle vous voulez écrire. Dans notre cas, la broche 13 de la DEL est sur le port B5 (ou en binaire : 0B100000). Vous pouvez trouver le port et les broches brutes dans les schémas Arduino que vous pouvez consulter sur le site Web d'Arduino.

Compilation et téléchargement

Avec le fichier Makefile ci-joint, il devient facile de compiler le fichier C.

Il suffit de l'exécuter :

make

Dans les coulisses, le Makefile appelle le compilateur C de l'AVR (avr-gcc) et convertit le le fichier au format hexadécimal correct que l'uploader peut utiliser. Avant de pouvoir télécharger, vous devez trouver à quel endroit de votre machine l'Arduino Uno est connecté sur votre machine. Le chemin est alors écrit dans le Makefile comme variable ARDUINO_USB.

Une fois que c'est fait, téléchargez le fichier sur votre Arduino Uno avec :

make deploy

L'uploader que nous utilisons dans le Makefile est appelé Avrdude.

Conclusion

La famille Arduino est un excellent terrain de jeu pour le prototypage matériel. Mais vous pouvez plonger plus profondément et programmer l'Ardunio Uno sans l'IDE Arduino en utilisant le langage C d'AVR. J'espère que j'ai pu lever les premiers obstacles dans cette aventure.

Références

Pour une meilleure qualité, regardez-le via ce lien : https://www.youtube.com/watch?v=IP4Ikw3KtAU

Publié le 14 octobre 2021

Creative Commons License
Cette œuvre est soumise à une licence Creative Commons Attribution 4.0 International License.
Thomas Derflinger

Écrit par Thomas Derflinger

Je suis un entrepreneur visionnaire et un développeur de logiciels. Dans ce blog, j'écris principalement sur la programmation web et des sujets connexes comme l'IdO.