Programme PIC16F876

[Résolu]
Signaler
Messages postés
6
Date d'inscription
vendredi 2 novembre 2007
Statut
Membre
Dernière intervention
3 mars 2009
-
Messages postés
6
Date d'inscription
vendredi 2 novembre 2007
Statut
Membre
Dernière intervention
3 mars 2009
-
je veux créer un programme permettant de sortir des impulsions sur une sortie d'un port. je veux cadencer une horloge sur cette sortie. quand je dois faire. merci d'avance.

9 réponses

Messages postés
212
Date d'inscription
mardi 17 mai 2005
Statut
Membre
Dernière intervention
23 juin 2011

Salut,
Il faut reformuler ta question...
"impulsions sur la sortie d'un pour" (port d'un PC ou d'un PIC ?)

Cordialement,
Sébastien.
Messages postés
70
Date d'inscription
mercredi 1 octobre 2008
Statut
Membre
Dernière intervention
17 avril 2013

Bonjour,


Peux tu nous donner plus de précision sur ton environement de développement et réellement ce que tu souhaite faire avec quoi, comment ect...


Dans l'esprit pour cracher une horloge sur µC c'est sa :


Tant que je sais pas quoi
{ // Etat haut
 Mettre a 1 le port ou la PIN que tu veux.
 Appel du sous programme tempo X // ICI
 
 // Etat bas
 Mettre a 0 le port ou la PIN que tu veux.
 Appel du sous programme tempo X // ICI


}


Cordialement,
Romain
Messages postés
70
Date d'inscription
mercredi 1 octobre 2008
Statut
Membre
Dernière intervention
17 avril 2013

Bonjour,

Tout dépend la précision que tu souhaite avoir. Pour les delays tu peut les utiliser comme sa mais ils sont imprécis :


#define PIN_CLOCK  RB5 
#define  CLK_H  1
#define CLK_L  0


void main(void)
 { // Configuration de la broche B5 en sortie
  trisb = trisb & 0xdf;
  portb = (portb & 0xdf) | 0x20;
  
  PIN_CLOCK = CLK_H; // Ton état haut
  delay_ms(5);  // Ta tempo de 5ms
  PIN_CLOCK = CLK_L; // Ton état bas
  delay_ms(5);  // Ta tempo de 5ms
 }


Aprés si tu veux plus de précision, utilise un timer, c'est le même principe sauf qu'a la place de "delay_ms" tu fait appel a ton "sous programme timer" et la c'est précis.
Si non tu peux encore faire un compteur ou un décompteur qui aura le même fonctionnement.


Cela ta t-il éclairé ?
Cordialement,
Romain
Messages postés
70
Date d'inscription
mercredi 1 octobre 2008
Statut
Membre
Dernière intervention
17 avril 2013

   Quand tu fait appel à delay_ms(X) tu sort du main() et tu va dans le sous programme de la bibliothèque de ton compilo delay_ms(X). 
   Dans ce sous programme tu y reste X temps et a coté tu ne fait rien, tu attends.
   
   Maintenant quand tu utilise un timer, tu peux gérer deux tâches à la fois (Une tâche dans ton main() et une tâche de fond dans ton timer). C'est aussi l'avantage du timer.

   Le plus simple étant biensur d'utiliser la fonction delay_ms. Aprés tout dépend de ce que tu veux faire derrière et de la taille de ton projet.
   
   Cordialement,
   Romain
Messages postés
6
Date d'inscription
vendredi 2 novembre 2007
Statut
Membre
Dernière intervention
3 mars 2009

je dois le faire sortir sur un PIN un cadencement de 10ms à l'état haut et 10ms à l'état bas. je na sais pas si je dois avec un delay_ms() car c'est en temps réel.
Messages postés
6
Date d'inscription
vendredi 2 novembre 2007
Statut
Membre
Dernière intervention
3 mars 2009

je dois sortir sur un PIC en temps réel. je me demande si je ne dois pas utiliser un "delay" ou pas. merci
Messages postés
6
Date d'inscription
vendredi 2 novembre 2007
Statut
Membre
Dernière intervention
3 mars 2009

je compile en C j'ai oublié.
Messages postés
6
Date d'inscription
vendredi 2 novembre 2007
Statut
Membre
Dernière intervention
3 mars 2009

parfaitement claire je vous remercie de votre aide.
le delay_ms ne vas pas dérranger l'interruption qui sera faite?
Messages postés
6
Date d'inscription
vendredi 2 novembre 2007
Statut
Membre
Dernière intervention
3 mars 2009

ok merci mec, tu es trop fort. je ne comprends rien en C je commence à prendre des repères. merci pour ton aide.