Futura Sciences
Image de la rubrique en cours

Forum FS Generation

Précédent   Vous êtes ici : Forum FS Generation » Futura Technique » Électronique


Réponse
Vieux 03/10/2007, 17h19   Sujet Interruption C PIC16F877 - Message #1
Melodie Nelson
 
Date d'inscription: juillet 2007
Localisation: tu bluf martoni, ton arm né pa chargé...PAN !!!....i di kil a pu de genou....i di ki voi pa le rapor
Âge: 23
Messages: 130
Interruption C PIC16F877
Bonjour,

J'aimerai enfin apprendre à faire des interruptions en C.
Mais à vrai dire je ne sais pas si c'est bien ce dont j'ai besoin.

En gros pendant que mon programme s'execute je voudrais par exemple faire clignoter 2 LED. Mais il n'y a aucune condition pour lancer ou arrêter le clignotement. De mémoire je crois que dans ce cas on utilise une interruption, qui va faire tourner un "programme" en parallèle au programme principal.

Il me semble qu'une interruption nécessite une "condition" pour être executée, non ? Mais à priori supprimer une condition n'est jamais un problème.

Mais donc je suis pas vraiment sur de ce que j'avance.

Sansa j'ai un soucis pour déterminer la "tempo". Il me faut je crois utiliser un timer. J'utilise déjà le timer2 pour des PWM, je peux donc utiliser le 1 ?

J'utilise MPLAB avec CCS, et dans les exemples CCS j'a itrouvé ceci : (n'ayant pas internet sur mon pc, je note ça de mémoire...)

Code:
#int_EXT EXT_isr() { // c'est ici qu'on tape ce qu'elle doit faire ?? } enable_interrupts(INT_EXT); enable_interrupts(GLOBAL); //à mettre tjr apparemment pour autoriser les interruptions
Comment est-ce que j'appelle mon interruption après ?

A priori le code pour mes LED serait du style :

output_high(PIN_A2)
output_low(PIN_A3)
//réaliser la tempo, par un delay ou bien par le timer ???
output_high(PIN_A2)
output_low(PIN_A3)

Bref ça reste très flou pour l'instant.

A aussi je vois que pour configurer le timer il faut faire :

setup_timer1(chai pu koi diviser by 4 , puis d'autres paramètre pour calculer sa fréquence, c'est ça ? )

Merci beaucoup
__________________
Femme qui pète n'est pas morte
Melodie Nelson est déconnecté   Réponse avec citation
Alt Aujourd'hui
Publicité

Beitrag Liens sponsorisés

   
Vieux 03/10/2007, 17h27   Sujet Interruption C PIC16F877 - Message #2
bestsiena
 
Date d'inscription: septembre 2007
Âge: 23
Messages: 48
Re : Interruption C PIC16F877
Bonjour,

L'endroit que tu spécifies pour l'inscription du code est correcte.

Attention : Le code pour la gestion que tu proposes, s'occupe des interruptions externes.

Si j'étais toi, j'utiliserais les interruptions du timer1 (tu peux définir ta tempo grâce à la valeur qui génère l'interruption)

Principe : Le timer1 s'incrémente. Lorsqu'il atteint une valeur définie, il génère une interruption. Ton programme s'interrompt pour gérer cette interruption.
Le code que tu mets dans une interruption doit toujours être le plus court possible (pour limiter le temps de "blocage"). Ne mets donc pas la tempo dans ton interruption sinon tu vas interrompre ton programme pendant toute la durée de la tempo.

Pour le code, je mettrais quelque chose du genre (modifier la valeur de sortie, si 1 => 0, si 0 => 1):

Pin_A2 ~=Pin_A2;
Pin_A3 ~= Pin_A3;

Ainsi chaque fois que le timer1 génère une interruption les leds changent d'état.
bestsiena est déconnecté   Réponse avec citation
Vieux 04/10/2007, 23h26   Sujet Interruption C PIC16F877 - Message #3
RISC
 
Date d'inscription: novembre 2006
Messages: 680
Re : Interruption C PIC16F877
Bonsoir,

Je te conseille cet excellent site qui propose des cours et des exemples avec les PIC16 et PIC18 en C :
http://www.aix2pic.indepnet.org/index1.html

a+
RISC est déconnecté   Réponse avec citation
Bienvenue
Si ceci est votre première visite, vous devez vous inscrire avant de pouvoir envoyer des messages. En étant inscrit vous pourrez poster votre question, participer aux débats, joindre vos images... alors n'attendez-plus, cela vous prendra 1 minute !

Pour commencer à lire les messages, depuis la page d'accueil des forums, sélectionnez le forum qui vous tente et partez ensuite à sa découverte...

Publicité

A voir aussi
Interruption RB0 (Forum Électronique)
interruption ( timer ) (Forum Électronique)
interruption pic18f4620 (Forum Électronique)
Interruption I2C (Forum Électronique)
Interruption et PIC18F4431 (Forum Électronique)






A voir aussi (Futura Sciences n'est pas responsable du contenu de ces publicités)
Réponse



Outils
Modes d'affichage

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Navigation rapide


Les dernières actualités
24/07 09:31 - Un moteur actionné par la lumière
23/07 17:28 - Le volcanisme à l'origine de l'extinction marine du Crétacé supérieur ?
23/07 14:54 - Les mouches seraient sensibles au champ magnétique
23/07 11:31 - Faut-il jeter de la chaux dans les océans pour refroidir la planète ?
23/07 09:32 - Un pseudo GPS pour les futurs explorateurs lunaires
22/07 16:34 - Au cœur de la Pivoine, l'étoile médaille d'argent de la luminosité
22/07 13:32 - Listériose en hausse en France et en Europe

Fuseau horaire GMT +2. Il est actuellement 10h44.

Propulsé par vBulletin
Copyright © 2000 - 2008, Jelsoft Enterprises Ltd. Tous droits réservés.
Traduction par l'association vBulletin francophone