Aller au début après interruption?

I

ipunished

Guest
Je comprends que quand une interruption se produit, le contrôleur retourne au micro où il a laissé partir .. mais mon interruption se compose d'un interrupteur d'arrêt, c'est à dire après la iterrupt je veux que de tout arrêter .. mon code consiste à effectuer un moteur dans un while (1) boucle .. après l'interruption matérielle est pressé il faut tout arrêter, puis de nouveau attendre que le bouton de démarrage pour être pressé .. J'ai pensé à appeler la fonction bouton de démarrage dans le rapport de recherche internationale, mais qui laissera la pile non défrichée. un moyen de contourner ce problème?
 
pourriez-vous mettre votre code et schématique ... Et aussi que vous avez mentionné, après l'interruption matérielle est pressé il faut tout arrêter, cela signifie que vous voulez le contrôleur s'est éteint ou seulement à moteur ... Si vous voulez tout [régulateur est trop] système éteint, je peux fournir une solution ... Cela peut être fait en mettant circuit quincaillerie ... Utilisation de la porte OU [74HC1G32] et Interrupteur [FPF2100], vous pouvez obtenir celui-ci ... porte OU a deux entrées [A et B] B devrait connecté bouton-poussoir sur le bouton [un bout ira à l'entrée de la porte OU et l'autre extrémité va à VCC avec "pull down résistance] et A doit être connecté au contrôleur de GPIO, la sortie de OU porte [Y] doit se connecter à ON [troisième axe] de FPF2100 [avec "pull down résistance] ... Le VOUT [broches cinquième] de FPF2100 aurez connecté à VCC du microcontrôleur ... La logique est très simple lorsque vous appuyez sur le bouton poussoir, la sortie de la porte OU sera élevé qui est relié à la charge interrupteur, puis le pouvoir va au contrôleur ... Dans votre programme de faire le GPIO élevé [qui est relié à l'autre entrée de la porte OU], puis de façon continue le pouvoir va au contrôleur ... Puis, arrêtez touche est enfoncée, tout arrêter [Comme ce que vous dit] ... Encore une fois mise en marche pressée, Quincaillerie prendra soin de tout [Sauf décision GPIO sourire haute ]...::
 
Merci pour votre réponse détaillée, kandhu, mais je ne veux pas tourner le microcontrôleur complètement fermé, comme après l'interruption, je veux d'attendre que le bouton de démarrage à nouveau, je veux juste tahts après l'interrupteur d'arrêt est pressé il s'arrête en cours d'exécution tout , je veux dire de 0 à envoyer tous les ports de sortie, mais après que je veux c'est d'attendre le début switchg nouveau .. mon code pour le rapport de recherche internationale à partir de maintenant ne contient que de l'envoi de 0 à les ports de sortie = /
 
Vous pouvez modifier votre code dans la routine de rapport de recherche internationale, et l'utilisation d'une simple boucle d'attente au passage à l'appuyer de nouveau. Une fois qu'il est pressé début everthing puis la sortie de la routine.
 
| Je pensais que, mais l'habitude de laisser la pile mal géré .. Je veux dire quand le microcontrôleur va rapport de recherche internationale, il stocke ce qu'il le fasse sur la pile, puis revenir et reprendre ..
 
Son mieux vous mettre le code ici ... Puis quelqu'un donner la solution à votre problème ...
 
Lorsque vous entrez dans la routine, il arrête le processus d'interruption. Il ne stocke que l'adresse de retour. Vous avez besoin de quelque chose comme ceci Sauvegarder les registres. l'arrêt du moteur. passer toutes les sorties à zéro. boucle d'attente pour le passage à être pressé à nouveau. démarrer le moteur de rétablir les sorties. effacer les drapeaux d'interruption restaurer registres [ [] rapport de recherche internationale de sortie / I]
 
registres, sauf dans les rapport de recherche internationale, swap vous aidera
 

Welcome to EDABoard.com

Sponsor

Back
Top