
Le but du jeu est donc de configurer des registres pour faire fonctionner comme on le désire les périphériques de ce µC.
Pour beaucoup de ces registres, c’est du binaire.
Par exemple mettre un timer en route, on va dans la doc du µC et l’on y trouve le registre SCT control et le bit 2 qui à 1 stoppe le timer.
Il suffit de le mettre à zéro.
Mais le langage C a un très gros manque pour nos µC, il ne traite pas directement le binaire.
Il faut donc lire le registre, faire un AND sur tous les bits sauf le bit 2.
On peut prendre sa calculette de conversion ou écrire : LPC_SCT0->CTRL_U &= ~(1 << 2);
LPC_SCT0->CTRL_U indique le registre, le & avant = simplifie juste l’écriture qui correspond à LPC_SCT0->CTRL_U = LPC_SCT0->CTRL_U & ~(1 << 2);
Le ~ signal inverse et le (1<<2) signale la valeur 1 décalée à gauche de 2.
Peut paraitre compliqué, mais 1 est la valeur et 2 la position du bit, ce qui correspond à 100 en binaire soit 4 en décimal.
Évidemment c’est peu digeste lorsque l’on n’a pas l’habitude d’où l’idée de NXP de créer des lib bien plus causantes avec OpenLPC.
Voici la même chose avec OpenLPC : Chip_SCTPWM_Start(SCT_PWM);
Une simple fonction qui au final fait le même code par petits jeux de passe-passe avec le compilateur.
C’est donc tentant, mais pas pratique du tout car l’on s’éloigne complètement de la doc et l’on est très vite perdu et sans aucune maitrise de ce que l’on faire.
Bref ça fonctionne.
