Test d'allume Led Timer
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

Test d'allume Led Timer



  1. #1
    inviteb2b48352

    Test d'allume Led Timer


    ------

    Bonjour, voici un programme que j'ai fait concernant le TIMER1 en mode horloge temps réel sur un PIC18F4431 ,je voudrais le tester en allumant des LEDs en sorties pour les secondes, minutes, heures et je ne sais pas comment faire.Merci


    /* Un timer allume puis éteint la
    * led à intervalles réguliers */

    #include <p18f4431.h> // déclarations pour le PIC18F4431


    #pragma config OSC=HS
    #pragma config WDT=OFF
    #pragma config LVP=OFF
    #pragma config DEBUG=ON


    void Init_Timer1(void)
    {
    TMR1H = 0x80; //Débordement toutes les 1secondes
    TMR1L = 0x00;
    T1CON = 0b00001111; //Synchro horloge externe 32,768Khz
    PIR1bits.TMR1IF = 0;
    PIE1bits.TMR1IE = 1;
    }

    unsigned char secondes, minutes, heures;

    void main (void)
    {
    Init_Timer1();

    if (PIR1bits.TMR1IF)
    {
    secondes++; // Incrementation des secondes
    if (secondes > 59) // 60 secondes ?
    {
    secondes = 0;
    minutes++;
    }
    if(minutes > 59) //60minutes
    {
    minutes = 0;
    heures++;
    }
    if (heures > 12) //Ne pas utiliser les 24H
    heures = 1;
    TMR1H |= 0x80; //Reset Timer1
    PIR1bits.TMR1IF = 0; //Effacer le Flag
    }

    }
    Merci

    -----

  2. #2
    invite7a49d0d5

    Cool Re : Test d'allume Led Timer

    Bonsoir,

    je ne suis pas sur que tester le flag de l'interruption
    dans le main soit une solution optimale...
    idéalement? on gère ça dans une interruption...

    après pour allumer des leds, tu mets des ports en sorties,
    exemple : TRSIC = 0b00000000;
    puis y a plus qu'à, exemple : PORTC = valeur; ...

    vede
    ;O]
    ___________________
    ...

    ps : il faut souvent désactiver le convertisseur ADC...

  3. #3
    inviteb2b48352

    Re : Test d'allume Led Timer

    Merci, dans ce cas comment le gérer dans l'interruption, auriez vous une idée ? Ce programme va t-il me permettre de compter les secondes, minutes, heures ou il me manque encore beaucoup de chose non écrites dans le source ?

  4. #4
    invite7a49d0d5

    Cool Re : Test d'allume Led Timer

    Bonjour,

    pour bien comprendre, "La Bible" c'est les cours de Monsieur BigOnOff :
    http://www.abcelectronique.com/bigonoff/index.php

    sinon vite fais tu peux jeter un oeil à ce fil :
    http://forums.futura-sciences.com/el...c16f690-2.html
    ou fouiller dans d'autres :
    http://forums.futura-sciences.com/se...archid=4086772
    (notamment ceux avec plus de 10 posts, où tu tomberas
    sur mes tentatives d'explications du fonctionnement des
    timers et leurs interruptions...)

    ou même "pic timer interruption" dans google...
    et après si tu as une question précise...
    vede
    ;O]
    ____________________
    ...
    ps : et oui, ton programme est sur la bonne voie...
    reste à activer INTCON... et allumer les leds...

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

    Re : Test d'allume Led Timer

    Re bonjour, je suis toujours avec ce probleme pour allumer mes led pour pouvoir essayer mon programme, j'ai effectuer les modifications concernant le programme d'interruptions, j'aimerais svp que quelqu'un m'aide à tester mon programme en allumant des leds en fonction des secondes et minutes, je vous remercie dans l'attente d'une réponse

    Voici le programme :
    /* Un timer gère le temps par Interuptions */

    #include <p18f4431.h> // déclarations pour le PIC18F4431


    #pragma config OSC=HS
    #pragma config LVP=OFF
    #pragma config DEBUG=ON


    #pragma interrupt MyInterrupt
    void MyInterrupt(void);

    // on déclare que lors d'une interruption
    #pragma code highVector=0x008
    void atInterrupthigh(void)
    {
    // on doit éxecuter le code de la fonction MyHighInterrupt
    _asm GOTO MyInterrupt _endasm
    }
    #pragma code // retour à la zone de code

    void Init_Timer1(void);
    void Init_Port(void);

    void main (void)
    {
    Init_Timer1();
    Init_Port();

    while (1) {
    // traitement principal
    }

    }


    void Init_Timer1(void)
    {
    // Débordement toutes les 1 secondes
    TMR1H = 0x80;
    TMR1L = 0x00;
    // Configuration du Timer pour oscilleur externe, prescale de 1
    // synchronisation sur oscillateur externe
    T1CON=0b00001111;
    // Flag à 0
    PIR1bits.TMR1IF = 0;
    // active le debordement par interuptions
    PIE1bits.TMR1IE = 1;
    // Haute priorité
    IPR1bits.TMR1IP = 1;

    // On autorise toutes les interruptions
    INTCONbits.GIE = 1;
    INTCONbits.PEIE = 1;
    }


    void Init_Port(void)
    {

    // on configure le pin 0 du port C en entrée (oscillateur externe)
    TRISCbits.TRISC0 = 1;
    TRISCbits.TRISC1 = 1;
    TRISA= 0x00;

    }

    volatile unsigned secondes, minutes, heures;

    void MyInterrupt(void)
    {
    if (PIR1bits.TMR1IF)
    {
    secondes++; // Incrementation des secondes
    if (secondes > 59) // 60 secondes ?
    {
    secondes = 0;
    minutes++; // Incrémentation des minutes
    }
    if(minutes > 59) //60minutes ?
    {
    minutes = 0;
    heures++; // Incrémenation des heures
    }
    if (heures > 12) //Ne pas utiliser les 24H
    heures = 1;
    TMR1H |= 0x80; //Réinitialistion du Timer1
    PIR1bits.TMR1IF = 0; //Effacer le Flag

    }

    }

Discussions similaires

  1. Led clignotante timer
    Par invite74119562 dans le forum Électronique
    Réponses: 0
    Dernier message: 13/05/2008, 14h07
  2. [PIC]-Interruption / Timer / Led
    Par jorg1n dans le forum Électronique
    Réponses: 4
    Dernier message: 24/04/2008, 14h55
  3. Test de polarité LED
    Par invited9bb377e dans le forum Électronique
    Réponses: 4
    Dernier message: 13/12/2007, 18h26
  4. test led infra rouge receptrice???
    Par invitee7d11614 dans le forum Dépannage
    Réponses: 0
    Dernier message: 13/12/2006, 21h42
  5. Test de PIC 16F628 avec une LED...
    Par Raphael2 dans le forum Électronique
    Réponses: 15
    Dernier message: 23/07/2006, 09h37
Découvrez nos comparatifs produits sur l'informatique et les technologies.