signal TTL et pic
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

signal TTL et pic



  1. #1
    KHEOPS1982

    signal TTL et pic


    ------

    Salut à tous,

    je voudrais générer un signal TTL de fréquence 10 kHz sur un des ports de mon pic16F84A pendant 5 minutes. Je programme en basic. J'ai essayé plusieurs code mais ça ne fonctionne pas. Je ne sais pas comment je peux faire pour générer le signal pendant un timing. J'arrive bien à programmer le signal mais le timing pose problème
    quelqu'un aurait-il une idée ?

    Merci

    -----

  2. #2
    invite_P89
    Invité

    Re : signal TTL et pic

    Lu

    Tu peux utiliser le trimer0 pour le calcul du temps voir les feuilles de données

    à bientot

  3. #3
    invite03481543

    Re : signal TTL et pic

    Salut,

    comme dit Pom26 tu peux utiliser le timer0, il faut se servir de l'interruption TMR0IF pour incrémenter une variable qui une fois atteinte stoppera ton appli.

    Faire varier le port alternativement de 0 à 5V implique un cadencement à 20KHz, pour produire une fréquence réelle de 10KHz.

    On fixe le quartz à 4MHz:

    TIMER0 -> timer 8 bits => débordement pour 0xFF +1
    On précharge le Timer0 pour un débordement à 50µs.

    Donc il te faut surveiller le bit TMR0IF qui indique un débordement du timer qui correspond à t0=50µs

    Ensuite 5mn correspond à t1=5*60=300s

    Soit une variable t1=300/50µs=6 000 000

    Il te faudra 3 octets pour coder cette variable (long int).

    ce qui donnerait en C:

    Code:
    // Programme pour faire varier l'état du port B2 à 10KHz et arrêt programmé
    // pour t=5mn (utilisation du timer0)
    // Hulk28 pour KHEOPS1982
    // Programme tournant sur PIC16F84A @ 4MHz (mode XT)
    // Compilateur MikroC 7.0.0.3 gratuit pour cette config
    
    // déclaration des variables globales
    
    long int t1;
    
    // Entrée du programme
    
    void main ()
    {
     PORTB.F2=0;             // On initialise le port B2 à 0.
     TRISB.F2=0;             // Direction du port en sortie.
     OPTION_REG=0b01000000;  // Mode Timer, Prescaler sur Timer0 (1:2), horloge interne
     TMR0=231;               // préchargement du timer0 ( (256-231)*2µs=50µs -> 20KHz
                             // car port cyclant alternativement de 0 à 5V -> 10KHz
     INTCON.F5=1;            // interruption autorisée sur Timer0 (TOIF).
     INTCON.F7=1;            // GIE=1 (global interrupt enable)
     t1=0;
    
    
    while(1){} //Le programme tourne dans cette boucle infinie
    
    }     // fin main()
    
    void interrupt()
       {
       if(INTCON.F2==1)       // si le flag d'interruption (TOIF) est détecté on a atteint 50µs
          {
          TMR0=231;           // on recharge Timer0
          PORTB.F2=~PORTB.F2; // on inverse la valeur du port B2.
          INTCON.F2=0;        // on efface le flag pour un nouveau cycle
          t1++;               // on incrémente la variable d'arrêt de 1.
    
          if(t1==6000000)     // ici on atteint le temps t2=300s soit 5mn
           {
           t1=0;
           PORTB.F2=0;        // on arrête l'activité du port B2
           INTCON.F7=0;       // on interdit toute nouvelle interruption
           }
          }
       }  // fin interruption
    8% de ROM utilisé.
    33% de RAM utilisée.

    Prog pas testé mais OK en compilation.
    Tu peux télécharger MikroC si tu veux modifier ce prog.
    On peut faire mieux, mais tu as au moins le principe.

    A toi de jouer.
    Dernière modification par HULK28 ; 24/12/2007 à 01h24. Motif: Erreur sur le quartz corrigée

  4. #4
    invite03481543

    Re : signal TTL et pic

    Je te joins le hex et le fichier c correspondant, il suffit de l'enregistrer en enlevant l'extension .txt.
    @+
    Fichiers attachés Fichiers attachés
    Dernière modification par HULK28 ; 24/12/2007 à 01h17.

  5. A voir en vidéo sur Futura
  6. #5
    KHEOPS1982

    Re : signal TTL et pic

    Salut à tous,

    merci pour ces renseignements. Je n'avais plus pensé à utilisé le timer0.

    @+

  7. #6
    invite03481543

    Re : signal TTL et pic

    Tiens nous au courant du test.

  8. #7
    KHEOPS1982

    Re : signal TTL et pic

    Salut à tous,

    ça fonctionne.

    Merci

Discussions similaires

  1. Generer signal PWM precis avec un PIC
    Par invite5d1bc976 dans le forum Électronique
    Réponses: 9
    Dernier message: 06/04/2012, 19h05
  2. Générer un signal carré 500hz avec flowcode sur pic 16f84
    Par invitef27eb29a dans le forum Électronique
    Réponses: 2
    Dernier message: 09/02/2007, 20h25
  3. exploiter un signal créneau avec un pic
    Par invite5b8765c4 dans le forum Électronique
    Réponses: 1
    Dernier message: 10/08/2006, 14h04
  4. traitement de signal a base d'un pic
    Par khalid dans le forum Électronique
    Réponses: 12
    Dernier message: 23/11/2005, 20h44
  5. probleme de generation de signal à partir d'un PIC
    Par invitedf0aab05 dans le forum Électronique
    Réponses: 4
    Dernier message: 22/08/2004, 18h00
Découvrez nos comparatifs produits sur l'informatique et les technologies.