Étape 1: En quoi consiste un registre ?
Attendez, ce qui est un registre que vous demandez ? Bref, c’est un segment de mémoire, généralement composé de n’importe où de 8 à 64 bits de données. Chaque bit est assignée une valeur 1 ou 0 et la valeur de chaque bit les nombreux différents registres dans un microcontrôleur de dire au reste du système, quoi faire et quand le faire. La plupart des registres de la puce ATMEGA328P sur l’Arduino sont 8-16 bits. Les planches chipKIT utilisant des processeurs PIC, et ils sont généralement registres 16-32 bit. Il y a beaucoup plus que je pouvais entrer dans au sujet de registres, mais il est préférable de laisser à un autre jour. Wikipedia a une bonne explication aussi bien.
Vous pouvez considérer un registre comme vous le faites lorsque vous écrivez un morceau de code dans vos favoris, codage de langue, sauf que chaque élément est un peu simple, pas une collection de morceaux qui composent l' int ou char que vous avez défini un tableau. En outre, tout comme les baies, le compteur démarre à 0, pas de 1. Ainsi, un registre de 8 bits (appelons-le myRegister pour le plaisir) a 8 bits total, numérotées de 0 à 7. Si nous voyons une épingle sur notre microcontrôleur assigné à peu myRegister [6], nous savons donc que le bit 7 deth (second de la dernière) est celui auquel que nous devons manipuler. Il peut être difficile de continuer tout droit, mais il est important. Je vais essayer et il préciser plus tard, probablement au point d’overkill.
Quelques éléments à garder à l’esprit- Manipulation de Registre est une option de programmation parfaitement viable, je ne vraiment le recommande que si vous êtes extrêmement confiant en vos capacités et vous sont totalement hors de la mémoire sur votre puce ou que vous devrez libérer quelques cycles d’horloge supplémentaire. Souvent, il y a beaucoup de contrôles qui se produisent en arrière-plan lorsque vous utilisez les fonctions standard et les bibliothèques pour attribuer la direction de I/O et de valeurs aux broches. Il peut se complique en gardant tous ces trucs droites et peut-être pas valeur le temps et l’effort qu’il faut réécrire votre code en utilisant les registres. Cela étant dit, les exemples que je vais montrer que vous êtes simple et basique à l’extrême, donc n’importe qui peut les utiliser, indépendamment de l’expérience. Ils vont certainement prendre moins de mémoire et processus plus rapidement que si vous deviez utiliser les fonctions standard. Mais il faut être extrêmement prudent lorsque vous manipulez les registres directement et quadruple Vérifiez vos relevés. Il serait difficile d’endommager les jetons manipuler les registres mal, mais il peut être beaucoup plus difficile à déboguer lorsqu’il ne fonctionne pas à droite, le plus souvent parce que vous avez écrit une valeur incorrecte pour le registre mal ou peu. Les fonctions standard et les bibliothèques sont là pour une raison. Ils prennent plus de temps de traitement et de mémoire, mais sont généralement plus facile à utiliser. Dernière chose, n’oubliez pas que les paramètres de performance pour chaque broche ne changent pas (par exemple actuel de source/coulé, tensions, etc.) lorsque vous utilisez les registres. Don't blame me lorsque vous essayez et un moteur de 2 a directement à partir de pin 10 en voiture et il fume votre puce. C’est sur vous parce que vous devez savoir mieux quand même.