Étape 4: Autres commandes
Paramètres de fréquence d’horloge du processeur
Vous pouvez trouver ce que votre firmware a été configuré pour utiliser les paramètres d’horloge CPU avec la commande fcpu :
C’est 16 millions, soit 16 millions herz, plus communément appelé 16 MHz. Vous pouvez le modifier à la volée, pour une raison quelconque, avec la commande de l’horloge . Cette commande prend un argument : le Prédiviseur à utiliser lors de la répartition de votre vitesse d’horloge. La commande d’horloge comprend ces valeurs diviseur :
- ckdiv2
- ckdiv4
- ckdiv8
- ckdiv16
- ckdiv32
- ckdiv64
- ckdiv128
- ckdiv256
À l’aide de la commande :
Lorsque la vitesse de votre cpu est 16MHz serait le résultat dans votre vitesse d’horloge étant changé à 8 MHz. à l’aide d’un diviseur de ckdiv64 avec une vitesse d’horloge initial de 16MHz se traduira par une vitesse d’horloge final de 250 KHz. Pourquoi sur la terre vous voudrait faire votre MCU plus lent ? Eh bien, d’une part, une plus faible vitesse d’horloge consomme moins d’énergie et si vous avez votre microcontrôleur exécutant hors d’une batterie dans un boîtier de projet vous pouvez pas besoin pour fonctionner à la vitesse supérieure et pourrait par conséquent, réduire la vitesse et les réduire sa consommation d’énergie, augmentant l’autonomie de la batterie. Aussi, si vous utilisez l’horloge pour toute sorte de problèmes de synchronisation avec un autre MCU, dire, mettre en œuvre un logiciel UART ou quelque chose de tel, vous pouvez mettre à une valeur particulière qui est facile d’obtenir un débit en bauds même agréable avec des taux d’erreur inférieurs.
La mise sous tension et hors tension des sous-systèmes périphériques
Sur la même note que la réduction de consommation d’énergie mentionnée plus haut, vous pouvez encore réduire la puissance en fermant certains périphériques embarqués que vous n’utilisez pas. L’interpréteur de commandes et shell peuvent actuellement allumez et éteignez les périphériques suivants :
- Convertisseur analogique-numérique (ADC). Ce périphérique est utilisé lorsque vous avez un capteur analogique fournissant des données (comme la température, lumière, accélération, etc.) et que vous devez le convertir en une valeur numérique.
- Serial Peripheral Interface (SPI). Le bus SPI est utilisé pour communiquer avec les autres périphériques SPI, comme les mémoires externes, pilotes de LED, de l’ADC externe, etc.. Pièces de l’IPS sont utilisées pour le FAI de programmation, ou au moins les broches sont, soyez donc prudent lorsque cette fermeture si vous programmez via ISP.
- Interface 2 fils. Certains périphériques externes utilisent le bus I2C pour communiquer, même si ceux-ci sont rapidement remplacées par des périphériques compatibles SPI comme SPI a un débit supérieur.
- USART. C’est votre interface série. Vous ne voulez probablement pas désactiver cette option si vous êtes connecté à l’AVR via la connexion en série ! Cependant, j’ai ajouté ceci ici comme un squelette pour le portage aux périphériques dont plusieurs USART comme le ATmega162 ou ATmega644P.
- tous. Cet argument de la commande powerup ou powerdown tourne sur tous les périphériques mentionnés ou les transforme tout au loin avec une seule commande. Encore une fois, utilisez cette commande avec sagesse.
Démarrage et arrêt des Timers
La coquille a une minuterie intégrée de 16 bits qui est disponible pour utilisation. Vous démarrez la minuterie avec la commande de la minuterie :
et arrêter le chronomètre avec l’argument de l’arrêt :
Cette minuterie n’entrera en conflit avec la minuterie interne de l’USART. Voir le code pour les détails de mise en œuvre de la minuterie USART, si ce genre de détail sanglant vous intéresse.
Authentification
La coquille peut stocker un mot de passe de 8 caractères en EEPROM. Ce mécanisme de mot de passe a été créé pour prendre en charge les fonctionnalités de connexion telnet, mais pourrait être développé pour protéger les autres choses. Par exemple, vous pourriez exiger certaines commandes, comme changer les valeurs de Registre, via le mécanisme d’authentification.
Définissez le mot de passe avec la commande de mot de passe :
Autoriser contre mot de passe qu’il (ou soumises à autorisation par programmation dans le code) avec la commande auth. Notez que si vous essayez de modifier le mot de passe root, et il y a déjà un jeu de mot de passe de root, vous devez autoriser vous-même contre l’ancien mot de passe avant de pouvoir changer pour un nouveau mot de passe.
Bien sûr, vous devrez charger le fichier avrsh.eep si vous effacez le firmware pour avoir vos anciennes valeurs et les variables restaurés. Le Makefile crée le fichier de l’EEPROM pour vous.
Variables
La coque comprend la notion de variables définies par l’utilisateur. Le code de cette limite à 20, mais vous pouvez changer cela, si vous aimez en changeant la définir MAX_VARIABLES dans script.h. Vous pouvez enregistrer n’importe quelle valeur de 16 bits (c'est-à-dire n’importe quel nombre jusqu'à 65 536) à une variable a lieu de rappeler plus tard. La syntaxe est similaire à registres sauf un signe dollar ($) est utilisé pour désigner des variables à l’interpréteur de commandes. Liste de toutes vos variables avec la commande d’impression variables.
Définir une variable :
Obtenir la valeur d’une variable :
Vous pouvez voir ce que toutes les variables que vous avez actuellement instancié avec la commande d’impression que vous connaissez déjà.
Le nom de $ $FREE indique simplement que cet emplacement variable est libre et n’a pas reçu un nom de variable encore.