[Programmation] MICROCONTROLEURS 12F683 Interruption ne fonctionne pas - Page 4
Répondre à la discussion
Page 4 sur 4 PremièrePremière 4
Affichage des résultats 91 à 97 sur 97

MICROCONTROLEURS 12F683 Interruption ne fonctionne pas



  1. #91
    invite4d59cbf7

    Re : MICROCONTROLEURS 12F683 Interruption ne fonctionne pas


    ------

    Y'a un "progrès": on allume le montage = led allumée, appui BP clignotement 0.5Hz, appui BP arrêt du clignotement soit sur led allumée soit sur led éteinte selon état de la led au moment de l'appui. on dirait que l'interruption du timer ne fonctionne pas/

    -----

  2. #92
    invite4d59cbf7

    Re : MICROCONTROLEURS 12F683 Interruption ne fonctionne pas

    J'ai enlevé TMR0 = 16 dans le "else" de while et................ ça MARCHE!!! (ça devait produire une boucle )

    Eh ben je crois qu'on a fait le tour en ce qui me concerne pour les interruptions. Je vais continuer mon apprentissage.

    Encore un grand merci pour le temps que tu m'as consacré, vraiment sympa de profiter du (grand) savoir de gens comme toi.

    Si c'est pas indiscret, de quelle région es-tu?

    Je te souhaite une bonne continuation et peut-être à un de ces jours.

    Très cordialement

  3. #93
    invitead6c50a3

    Re : MICROCONTROLEURS 12F683 Interruption ne fonctionne pas

    Tu peux reposter le code que tu as tenté?

  4. #94
    invite4d59cbf7

    Re : MICROCONTROLEURS 12F683 Interruption ne fonctionne pas

    Voilà, le programme qui marche:

    Bon Aprèm


    #include <xc.h>
    #include <pic12f683.h>

    // Définition de la fréquence du crystal pour la fonction __delay_ms(x);
    #define _XTAL_FREQ 31000
    #define led GP4
    // CONFIG
    #pragma config FOSC = INTOSCIO // Oscillator Selection bits (INTOSCIO oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)
    #pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
    #pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
    #pragma config MCLRE = OFF // MCLR Pin Function Select bit (MCLR pin function is digital input, MCLR internally tied to VDD)
    #pragma config CP = OFF // Code Protection bit (Program memory code protection is disabled)
    #pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)
    #pragma config BOREN = OFF // Brown Out Detect (BOR disabled)
    #pragma config IESO = OFF // Internal External Switchover bit (Internal External Switchover mode is disabled)
    #pragma config FCMEN = OFF // Fail-Safe Clock Monitor Enabled bit (Fail-Safe Clock Monitor is disabled)

    _Bool t_change = 0;

    void __interrupt () my_isr_routine (void)
    {
    if ((INTCONbits.T0IF == 1) && (INTCONbits.T0IE == 1))
    {
    TMR0 = 16;
    led =~ led;
    INTCONbits.T0IF = 0;
    }
    if ((INTCONbits.INTF == 1) && (INTCONbits.INTE ==1))
    {

    t_change = ~t_change;
    INTCONbits.INTF = 0;



    }
    }


    void main () {
    ANSEL = 0b00000000;

    TRISIO = 0b00000100;

    OSCCON = 0b00000011;

    // timer

    OPTION_REGbits.T0CS = 0;
    OPTION_REGbits.T0SE = 0;
    OPTION_REGbits.PSA = 0;
    OPTION_REGbits.PS2 = 1;
    OPTION_REGbits.PS1 = 0;
    OPTION_REGbits.PS0 = 0;

    OPTION_REGbits.nGPPU = 1;// GPIO Pull-up disale bit
    OPTION_REGbits.INTEDG = 1;// Détection sur front montant


    TMR0 = 16; // le timer0 doit contenir ce préchargement pour avoir 1s

    //interruptions

    INTCON = 0b11110000; // ici on active les interruptions

    IOC = 0b00000100;

    GP2 = 0;

    while (1)
    {

    if(t_change == 1)
    {

    OPTION_REGbits.PS2 = 0;
    OPTION_REGbits.PS1 = 1;
    OPTION_REGbits.PS0 = 0;
    }
    else
    {

    OPTION_REGbits.PS2 = 1;
    OPTION_REGbits.PS1 = 0;
    OPTION_REGbits.PS0 = 0;
    }
    }

    }

  5. #95
    invite4d59cbf7

    Re : MICROCONTROLEURS 12F683 Interruption ne fonctionne pas

    Pour info:
    IOC est inutile je pense
    GP2 est en numérique ( analogique marche pas)
    et il y a une 12K en pull-up ( GP2 - GND)

  6. #96
    invitead6c50a3

    Re : MICROCONTROLEURS 12F683 Interruption ne fonctionne pas

    Oui normal, j'ai dit une connerie, mettre la pin en analogique est inutile vu qu'on utilise la détection de front
    Donc du coup ça fonctionne bien ?

  7. #97
    invite4d59cbf7

    Re : MICROCONTROLEURS 12F683 Interruption ne fonctionne pas

    Impeccable:

    On allume, ça commence à 1Hz, appui sur BP ça passe à 0.5Hz, appui sur PB ça repasse à 1Hz. nickel
    (même pas besoin de temporisation pour les rebonds de BP)

Page 4 sur 4 PremièrePremière 4

Discussions similaires

  1. PIC : interruption externe et interruption on change ?
    Par invitea3277f60 dans le forum Électronique
    Réponses: 10
    Dernier message: 09/04/2012, 13h41
  2. interruption sur pic 12f683
    Par invite19d2f999 dans le forum Électronique
    Réponses: 0
    Dernier message: 26/03/2012, 22h28
  3. probleme de gestion du port gpio sur 12F683
    Par invite3a1051d7 dans le forum Électronique
    Réponses: 23
    Dernier message: 13/07/2010, 10h47
  4. Programmation 12F683
    Par invite1ba9e12c dans le forum Électronique
    Réponses: 0
    Dernier message: 11/02/2009, 19h39
  5. PIC 12F683 et Debugger ICD2
    Par invite427c7eae dans le forum Électronique
    Réponses: 8
    Dernier message: 25/04/2007, 06h20
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...