Étape 4: Découvrir le œuf de Pâques cachés
Fonctionnement de l’horloge
- Si le vibreur est connecté, firmware permet pour réglage de l’alarme et son utilisation
- Appuyez sur le bouton unique active/désactive thru heures + minutes, alarme marche/arrêt + secondes et modes de sommeil
- pression longue passe en mode d’installation, pression successive de longue tourne au menu
- cycles d’éléments menu thru SEt ALr, Cnt, AdJ, bri
- en mode de configuration de « temporisation », appuyez brièvement sur pénètre dans le programme d’installation
- une fois le programme d’installation, bref presse bascule valeurs de chiffres (heures, minutes) et pression longue confirme
- choix de l’affichage 12H / 24h
- de même en mode de configuration « ALr » alarme, heures et minutes peuvent être saisies
- choix de l’alarme On ou oFF
- « Cnt » sélectionne la fonction de minuterie de cuisine, entrer les minutes et secondes, longtemps Appuyez sur pour confirmer et commence le décompte vers le bas
- en mode d’installation « AdJ » étalonnage 0-60 « capitaliser » peut être configuré pour rendre plus rapide, que chaque unité ajoute environ 0,5 % pour la vitesse d’horloge horloge
- en mode "veille", MCU va pouvoir le mode, consommant moins de 1uA de puissance, temporisateur est définie afin que le système réveille à chaque seconde de 1/8. cela, fait cependant le temps d’être toujours lent car il faut quelques cycles pour le MCU s’allume à nouveau. C’est pourquoi nous devons avoir une valeur d’étalonnage pour maintenir avec précision
- dernières valeurs de configuration enregistré dans l’EEPROM et seront utilisés pour la puissance suivante vers le haut
- en réglage variateur « bri », court presses cycles à travers les niveaux de luminosité disponibles, appuyez longuement confirme réglage
- multiplexage de segment LED comprend des retards pour compenser les différences de luminosité pour les chiffres individuels. C’est à dire. Quand dislaying un chiffre « 8 » nous rester plus longtemps qu’affichant un chiffre « 1 » pour compenser la perte de luminosité lors de la conduite de plusieurs segments.
Oeuf de Pâques
Il y a une fonctionnalité cachée pour le constructeur aventureux à explorer. Serait-ce comme un oeuf de Pâques de logiciels où l'on a besoin d’observer la séquence de touche ou l’échéancier ? Ou est il ré-organiser le matériel pour révéler le secret ?
pour fendre l’oeuf, vous pouvez :
1. autour du projet et « poke ». Il n’y a pas que de nombreux pins IO à fouiller.
2. utiliser mspdebug comme simulateur (dure)
chrisc mspdebug sim Simulation started, 0x10000 bytes of RAM (mspdebug) prog 3p4w-clock.elf Erasing... Writing 128 bytes to f800... Writing 128 bytes to ff80... (mspdebug) reset (mspdebug) step ( PC: f804) ( R4: 0000) ( R8: 0000) (R12: 0000) ( SP: 0280) ( R5: 0000) ( R9: 0000) (R13: 0000) ( SR: 0000) ( R6: 0000) (R10: 0000) (R14: 0000) ( R3: 0000) ( R7: 0000) (R11: 0000) (R15: 0000) __low_level_init: f804: b2 40 80 5a 20 01 MOV #0x5a80, &__WDTCTL __do_copy_data: f80a: 3f 40 02 00 MOV #0x2, R15 f80e: 0f 93 TST R15 f810: 05 24 JZ __do_clear_bss f812: 2f 83 DECD R15
3. Vérifiez l’utilisation de msp430-objdump contre le fichier elf. (plus facile en passant, relativement)