Cours:InfoS2 tdI2c

De troyesGEII
Révision datée du 9 mars 2022 à 16:23 par Bjacquot (discussion | contributions) (Page créée avec « =Framework Arduino= Lors des tds précédents, nous avons utilisé uniquement les fonctions de la {{Rouge|bibliothèque standard libc}} pour avr. {{Rouge|L'inconvénie... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher


Framework Arduino

Lors des tds précédents, nous avons utilisé uniquement les fonctions de la bibliothèque standard libc pour avr.

L'inconvénient principal réside dans la nécessité de devoir écrire/adapter un programme pour chaque µcontroleur (aussi nommé cible). L'avantage principal est d'avoir un programme très efficient en terme de taille d'exécutable et de rapidité d'exécution.

Afin de simplifier le changement de cible, on utilise le concept de couches d'abstractions.

CoucheAbstraction.png

L'idée sous-jacente est de ne pas faire un programme qui s'occupe de gérer directement les périphériques, mais utilise des fonctions qui s'occupent de faire le lien, un exemple sera plus parlant !

PORTB|=(1<<PB0);
analogWrite(8,1);

Ces 2 instructions sont équivalentes pour une carte arduino UNO, elles mettent toutes les 2 à 1 la broche étiquetée 8 sur cette carte.

Si nous changeons de carte (arduino Mega par ex), la broche utilisée sur le µcontroleur n'est pas la même et il faut alors remplacer :

PORTH|=(1<<PH5);
analogWrite(8,1);


Pour les cibles avr (famille des µcontroleurs aTmega ATtiny)