Étape 9: Que la programmation commence
Avant j’avais même pensé à l’enveloppe j’ai programmation l’anneau. Mais puisque j’ai commencé à travailler sur le corps que j’avais laissé le côté programmation jusqu'à la fin, c’est pourquoi j’ai dû inclure une programmation socket. Pouvez-vous imaginer si il y avait un bug dans mon code et j’ai n’eu aucun moyen de le réparer !
Voici où un autre problème s’est montrée. Une LED cassé!! J’avais écrit un programme de petit test qui montrerait un modèle sur les voyants lumineux lorsque l’alimentation a été appliquée, ce modèle serait cycle bien que les couleurs pour me dire que tout fonctionnait comme prévu. Cependant, je testais seulement chaque deuxième LED sur la bague extérieure. Une fois que j’avais programmé d’utiliser la bague intérieure, que j’ai découvert que seule la première moitié a travaillé, le second semestre ne serait pas afficher quoi que ce soit. Assez étrange si les LEDs ont été alimentés par 3.6volts au lieu de 5, données traverserait cette LED, mais il n’affiche pas toujours rien. Cependant, les couleurs émis par les LEDs sont beaucoup mieux à 5v. J’ai donc décidé de couper mes pertes et il suffit d’utiliser 60 LEDs de ma bague.
C’est en fait une bénédiction déguisée, parce que j’avais seulement fait un calcul rapide à l’arrière de ma tête tout en sélection le cerveau de cette horloge. L’élu MCU le MSP430G2553 compte 512bytes de RAM. Oui, octets. J’avais programmé un tampon pour stocker toutes les valeurs de LED, ils seraient ensuite transmis à une brusque rafale à tous les voyants, ce tampon prend 360 octets de notre précieuse ressource, c’est un peu plus de 70 % de la RAM allée là.
Il s’avère que l’une des fonctionnalités plus intéressantes de cette horloge est un agencement de capteur tactile capacitif qui j’ai incorporé dans le bord du PCB, honnêtement, je ne savais même pas que si cela fonctionne, je n’ai jamais fait capteurs capacitifs comme ça avant. Mais ils fonctionnent et fonctionnent bien. TI, la fabrication de la ligne de microcontrôleurs MSP430, créer une API pour la lecture des capteurs capacitifs, la logithèque tactile capacitif. C’est fantastique, mais à cause de tout le travail, qu'il a à faire, il utilise beaucoup de RAM. Les 12 éléments que je devais mesurer utilisent 48 octets, pour stocker les valeurs de mesure actuelle et une valeur de référence. puis appeler la fonction consomme d’espace sur la pile, j’ai quelques appels à la bibliothèque de débogage et trouvé environ 30-40 octets a été utilisé.
Si vous n’êtes pas familier avec mise en mémoire d’ordinateur, et vous êtes intéressé par elle, je vous suggère de que regarder que vers le haut. Mettre carrément lorsque la pile entrera dans le tas est connu comme un débordement de pile. Il m’arrivait, j’ai continué à obtenir des résultats imprévisibles étranges, parce que les deux parties de mon code accédaient au même emplacement en mémoire, de la substitution de chacun d’autres informations. Sans avoir besoin de mettre en mémoire tampon l’anneau intermédiaire j’avais libéré plus de suffisamment de RAM pour mon code.