8 canaux minuterie Programmable (4 / 13 étapes)

Étape 4: Clavier interruptions

J’ai voulu recourir à l’interruption PORTB sur interruption de changement sur n’importe quel touche. Pour ce faire, une interruption de la coutume a dû être créée dans Flowcode, afin d’assurer cette direction PORTB et données sont mises en place correctes avant et après chaque interruption du clavier. Une interruption est générée chaque fois qu’un bouton est pressé, ou relâché. La routine d’interruption répond uniquement lorsqu’une touche est enfoncée.

INTERRUPTION PERSONNALISÉE

Code d’activation

PORTB = 0b00001110 ;
trisb = 0b11110001 ;

intcon. RBIE = 1 ;

intcon2. RBIP = 1 ;

intcon2. RBPU = 1 ;

rcon. IPEN = 0 ;

Code du gestionnaire

Si (intcon & (1 << RBIF))

{FCM_%n() ;

PORTB = 0b00001110 ;

trisb = 0b11110001 ;

Wreg = portb ;

clear_bit (intcon, RBIF) ;

}

Problèmes trouvés

Pendant une interruption, la routine d’interruption du service ne doit en aucun cas, appeler n’importe quel autre macro qui peut-être être utilisée quelque part dans le reste du programme. Cela conduira finalement à empiler les problèmes de débordement, comme l’interruption peut se produire en même temps que le programme principal est aussi dans la sous-routine même. C’est également identifiée comme une grave erreur de Flowcode lorsque le code est compilé.

Dans le code coutumier du clavier sous GetKeyPadNumber, il y a un tel appel à la macro Delay_us, qui provoque un débordement de pile. Pour y remédier, j’ai supprimé la commande Delay_us(10) et l’a remplacé avec 25 lignes de « wreg = porta; "commandes. Cette commande lit PORTA et place sa valeur dans le registre W, juste pour avoir quelque retard. Cette commande est compilée en une seule instruction similaire à assembleur movf porta, 0. Pour l’horloge de 10MHz utilisée dans le projet, chaque instruction sera 400ns, et pour obtenir un retard 10us, j’ai eu besoin de 25 de ces instructions.

Note sur la deuxième ligne de la Figure 3: GetKeypadNumber du Code personnalisé, que la commande de delay_us(10) original a été désactivée avec "/ /". Dessous, j’ai ajouté mon 25 « wreg = porta; "commandes pour obtenir un nouveau délai de 10us. Aucun appel à toutes les macros à l’intérieur de la Keypad_ReadKeypadNumber un code personnalisé, la macro clavier permet désormais à l’intérieur d’une routine d’interruption du service.

Il est à noter que les composants Flowcode clavier et eBlocks n’utilise pas les résistances de pull-up standard sur les lignes d’entrée. Au lieu de cela, il utilise des résistances de menu déroulant 100K. En raison des interférences trouvés sur le clavier au cours du développement, les résistances de 100 K étaient tous remplacés avec 10 K, et toutes les résistances de 10 K par 1 K 5. Le clavier a été testé pour fonctionner correcte avec conduit de 200mm.

Articles Liés

Béton architectural Cast : Mur casquettes, casquettes de colonne et foyer de cheminée et Mantel

Béton architectural Cast : Mur casquettes, casquettes de colonne et foyer de cheminée et Mantel

En tant qu'architecte, j'ai parfois une vision pour un élément de design ou de la finition qui est difficile ou coûteux à acquérir ou à construire. Par exemple, produits de béton coulé comme des comptoirs ou des meubles sont beaux et durables, mais r
Laser CO2 qui coupe la tôle

Laser CO2 qui coupe la tôle

s'il vous plaît NOTE : je ne suis vraiment pas compétition pour gagner le laser, un t-shirt serait très bien, Merci.J'ai vu la concurrence et pensé qu'il serait amusant de montrer mon système.INTRODUCTION. L'idée générale de ce système de laser de CO
Mon système de culture hydroponique DWC intérieur

Mon système de culture hydroponique DWC intérieur

cette instructable portera sur la construction et l'exploitation d'un système de culture hydroponique culture eau profonde. Jusqu'ici, j'ai sucessfully cultivé poivrons banane dans cette configuration avec facilité complète étant donné que la majeure
Automatique solaire alimenté à effet de serre arrosage System

Automatique solaire alimenté à effet de serre arrosage System

Il sert à me gênent que mes tomates seraient partagent en raison du manque d'eau alors que j'étais au travail, alors j'ai décidé de construire un système d'arrosage automatique, donc cela ne pouvait pas arriver ! Je voulais qu'elle soit solaire actio
Bouton rotatif Alternative TV Remote

Bouton rotatif Alternative TV Remote

Il s'agit d'un téléviseur distant qui utilise un sélecteur rotatif pour passer à 10 différents canaux préprogrammés. Il a pas de boutons et permet aux utilisateurs de passer à un canal spécifique sans savoir ou se rappeler le numéro du canal. Tout ce
Suspension éclairage

Suspension éclairage

il s'agit d'un moyen rapide, bon marché et simple suspendu léger d'installation à l'aide de quelques prises de lumière et la chaîne.La plupart, sinon tous les éléments que vous pouvez trouver autour de votre maison / garage.  En fait, je suis sorti e
Projet de culture aquaponique Starter de garage

Projet de culture aquaponique Starter de garage

Aquaponique utilise des déchets de poisson pour nourrir les plantes. À son tour, les plantes aideront les eau que les poissons vivent l'eau. Ce système fonctionne par pompage de l'eau d'un réservoir de poissons à travers un lit de grandir, puis laiss
Construire ce jardin d’eau Solar Powered hydroponique sur roues - incontournable !

Construire ce jardin d’eau Solar Powered hydroponique sur roues - incontournable !

Build cet incroyable énergie solaire, complètement autonome hydroponique jardin et cultiver les fleurs plus grandes, le plus savoureux fruits et légumes que vous pouvez réellement vivre sur toute l'année. Conçu pour un usage extérieur, qu'il peut tou
Pas cher piscine/spa/bain à remous chauffe-eau solaire

Pas cher piscine/spa/bain à remous chauffe-eau solaire

Cette instructable couvre le chauffe-eau solaire, que j'ai fait de pièces disponible à la quincaillerie locale (ou récupération) pour pas cher. Je dois encore vrai mesures empiriques sur sa sortie/efficacité, mais il déclenche le temp de mon hot tub
IR contrôlée PC Power ON et OFF et écran de projection de haut en bas

IR contrôlée PC Power ON et OFF et écran de projection de haut en bas

HiIl s'agit de mon premier Instructable. J'ai juste pensé que je voudrais partager quelque chose que j'ai faite qui rend ma vie plus facile. J'avais besoin d'un moyen de transformer tous mes appareils de salle salon avec ma Logitech harmony remote.Le
Bloc d’alimentation RECHARGEABLE MiNi UberCool

Bloc d’alimentation RECHARGEABLE MiNi UberCool

Pour les gens qui sont livrés en électronique comme un passe-temps ou une profession, une des parties plus essentielles du travail est l'alimentation. Sans pouvoir, dispositifs et circuits électroniques constituent un élément du presse-papiers. Blocs
Prenez le contrôle de la console et donner à vos enfants leur vie retour !

Prenez le contrôle de la console et donner à vos enfants leur vie retour !

Jeux vidéo a causé beaucoup de stress dans ma maison.  J'ai essayé de chercher mon fils à limiter son temps sur les jeux en vain.  J'ai essayé de lui s'intéresser à d'autres choses, mais rien ne semble tenir son intérêt comme les jeux vidéo.Je ne sui
16 conseils sur de plus en plus Hot Chilli Peppers in a Cold Climate

16 conseils sur de plus en plus Hot Chilli Peppers in a Cold Climate

Si quelqu'un lisant ceci a effectivement goûté à ma cuisine, vous saurez comment importants piments sont à ma routine quotidienne. La plupart des repas j'ai cuit sans piments sont assez dégoûtant, à l'exception peut-être du fromage sur un toast, bien
Home Automation/sécurité Prototype

Home Automation/sécurité Prototype

J'ai joué avec les microcontrôleurs pour assez longtemps et puis j'ai mes amis m'a demandé de reprendre ce projet et j'ai était un peu nerveux parce que travailler avec des modules individuels domotique est relativement plus facile que de construire