Etape 2: Conception de logiciels
Programmation de la 12F609 sépare les hommes des garçons. Le matériel peut être super simple, le logiciel n’est pas. J’ai passé des semaines (OK, peut-être deux) versant sur ce genre de choses. Le code ci-dessous a été hautement optimisé pour cette application. Il n’y a pratiquement aucun vestige de RAM ou ROM d’épargner. En fait, j’ai manqué de RAM de nombreuses fois et a dû déposer d’éther ou de chercher davantage d’optimisations.
Le 12F609 n’a pas un UART. Ainsi, reçoivent les commandes de nouvelles tout en conservant les canaux PWM est devenu mon cauchemar. Les canaux PWM doivent être maintenues même si un nouveau personnage est en cours de réception. Le œil humain est tellement bon de voir le plus petit blip émanant d’une LED.
Recevoir un nouveau personnage à l’aide du logiciel n’est aucun grand chose. Mais, réception de caractères en mettant à jour les sorties PWM est. L’astuce consiste à mettre à jour des canaux de sortie LED en attendant le prochain bit sur le lien de comm. En effet, il est multitâche et le faire tous les travailleurs a été un souci majeur. Tout simplement impossible sans un LSA (analyseur d’état logique). J’ai utilisé une seule broche de sortie comme une épingle de débogage. J’activer/désactiver le code pin sur certains événements et voir pour cela sur mon LSA. En utilisant cette astuce, j’ai pu regarder chaque bit reçu par mon code.
OK, OK, déjà assez. Ci-dessous vous trouverez les fichiers sources qui font toute la magie. Je suis leur publication dans l’espoir que d’autres peuvent apprendre de mes efforts. Il y a vraiment un code bon là-dedans.
Au lieu de décrire tous les logiciels en détail, les commentaires dans le code devraient expliquer la plupart des trucs. N’oubliez pas, en cas de doute « Utiliser la force - afficher la source ». J’ai ajouté un tas plus de commentaires au code pour tenter de rendre plus lisible. J’espère que vous serez d’accord que c’est, en effet, lisible.
=========================================
Mise à jour : 16 mai 2012
Voici un accessoire de Zip qui dispose de 32 fichiers au sein de sortilège. Chaque fichier hex est le même sauf pour le numéro du nœud codées en dur. Ainsi, nœud-Flash #1 utiliser fichier « 1.hex » pour programmer le micro.
Cela devrait aider les gens qui n’ont pas accès à la CCS C Compiler.