Voilà mes retours pour le moment, globalement pas grand chose à dire sur le fond, en revanche pour la forme, tu es spécialiste des phrases kilomètriques !! Ca les rends difficile à lire, et on est obligé de les relire pour les comprendre. Tu gagnerais à les couper en plusieurs morceaux au lieu d’abuser des points-virgules.
Je n’ai pas relu les codes, je te fais confiance de ce côté
Voici les phrases trop longues à mon goût :
Deux fonctions nous seront particulièrement utiles pour travailler avec les registres, les fonctions sbi et cbi, qui vont passer, respectivement, un bit d’un registre à 1 ou à 0, par exemple, en reprenant notre exemple ci-dessus, pour faire au niveau du processeur l’équivalent d’un appel à analogRead, il faut utiliser :
-> Phrase trop longue !
déjà, un bloc de code bizarre en haut, et il s’agit d’un bout de code permettant, si les fonctions ne sont pas définies sur la carte, de les définir nous même, ce n’est donc pas important et je ne vais pas le mettre dans les exemples partiels, vous pouvez essayer sans, et si votre code ne fonctionne pas, tentez de les ajouter, ça pourrait corriger le problème ;
-> idem
La véritable fonction analogRead contient en plus du code pour sélectionner le pin à lire, ainsi que pour lire la valeur de sortie, mais le code complet ne nous intéresse pas ici, cet exemple n’est que, d’une part, pour vous expliquer le principe des registres, d’autre part, pour montrer la complexité du développement AVR.
-> Toujours pareil
A noter que cela permets d’utiliser uniquement des nombres pour les pins (0, 1, 2, …), mais pas les raccourcis qu’Arduino mets à notre disposition (A0, A1, A2), vous pouvez tester, mais comme ces pins correspondent en interne à des nombres de 14 à 21, et que nous avons ajouté un masque (le 0x07, 0000 0111 en binaire), le pin lu sera celui correspondant en décimal aux trois dernier bits du nombre correspondant à l’entrée analogique – c’est à ça que sert le masque, il n’écrit que sur les trois derniers bits du registre
-> encore
Ici, le capteur marqué TH est un capteur de température, il est monté, ainsi que les deux autres résistances de gauche, en pont diviseur – rappelez-vous, nous avons abordé cette notion plus haut, avec la création d’un référence de tension, vous n’avez pas besoin de comprendre le principe exact de fonctionnement (d’ailleurs, les résistances n’ont même pas de valeurs), mais simplement de voir que lorsque la température augmente, la résistance de la thermistance (le composant qui mesure la température) diminue, ce qui fait augmenter la tension sur V+, et va au bout d’un moment (quand la tension sera passée au dessus de V−), déclencher le comparateur, qui allumera la LED.
-> idem
Le premier bit, ACD, permets de désactiver le comparateur lorsqu’il est passé à 1, par conséquent, il faudra nous assurer qu’il est à 0 avant d’utiliser le comparateur ; aussi, les entrée du comparateur sont déjà utilisées pour des entrées numérique de l’Arduino, il nous faudra donc désactiver les entrées numériques sur les pins 7 et 6, à travers un registre fait pour ça, DIDR1, que nous passerons intégralement à 0 sauf pour les deux derniers bits. Aussi, le bit d’activation des interruptions (oui, comme dans la partie précédente, avec ADC_vec), doit être passé à 1, il s’agit du bit ACIE du registre ACSR.
-> idem
Dans certains cas, l’utilisation d’un pin numérique pour effectuer une comparaison peux sembler inutile, surtout quand des pins analogiques sont présents pour effectuer ces comparaison en temps normal ; voyons donc comment utiliser nos chers pins analogiques pour l’entrée négative du comparateur – notons que l’entrée + ne peux quand à elle pas être remplacée, il s’agira toujours de AIN0, située broche 6 du Uno.
-> Encore trop long
ce qui déclenchera une interruption lorsque de V+ deviendra supérieur à V−.
-> Typo