pic 18F45K22 mettre une sortie à 1
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

pic 18F45K22 mettre une sortie à 1



  1. #1
    docEmmettBrown

    pic 18F45K22 mettre une sortie à 1


    ------

    bonjour,

    je veux juste mettre la sortie RA0 à 1 mais ca ne fonctionne pas, voici mon code:

    Code:
    void init_pic()
    {
        OSCCON=0b01111100;  //Oscillateur interne à 16MHz
    
        ANSELA=0b00000000;//numérique
        TRISA=0b00000000;//sortie
        PORTA=0x01;// juste RA0 à 1 
    }
    void main(void)
    {
        init_pic();
        while(1)
        {      
            LATAbits.LATA0 = 1 ;
        }
    }
    déja pendant l'initialisation je met RA0 à 1 et ensuite dans le main je le remet a 1 encore mais j'ai toujours 0 volt en sortie de RA0, j'ai testé sans LATAbits.LATA0, j'ai toujours 0 volt et je ne vois absolument pas pourquoi

    avez vous une idée du probleme?
    je compile avec MPLABX pour info

    merci d'avance

    -----

  2. #2
    mag1

    Re : pic 18F45K22 mettre une sortie à 1

    Citation Envoyé par docEmmettBrown Voir le message
    bonjour,

    je veux juste mettre la sortie RA0 à 1 mais ca ne fonctionne pas, voici mon code:

    Code:
    void init_pic()
    {
        OSCCON=0b01111100;  //Oscillateur interne à 16MHz
    
        ANSELA=0b00000000;//numérique
        TRISA=0b00000000;//sortie
        PORTA=0x01;// juste RA0 à 1 
    }
    void main(void)
    {
        init_pic();
        while(1)
        {      
            LATAbits.LATA0 = 1 ;
        }
    }
    déja pendant l'initialisation je met RA0 à 1 et ensuite dans le main je le remet a 1 encore mais j'ai toujours 0 volt en sortie de RA0, j'ai testé sans LATAbits.LATA0, j'ai toujours 0 volt et je ne vois absolument pas pourquoi

    avez vous une idée du probleme?
    je compile avec MPLABX pour info

    merci d'avance
    Bonjour,

    Je n'y connais encore rien, mais TRISA, c'est la définition des E/S et il me semble qu'il n'y a que des entrées....

    MM
    Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...

  3. #3
    antek

    Re : pic 18F45K22 mettre une sortie à 1

    Citation Envoyé par mag1 Voir le message
    Je n'y connais encore rien, mais TRISA, c'est la définition des E/S et il me semble qu'il n'y a que des entrées....
    TRISA = 0 -> PORTA correspondant en sortie

  4. #4
    terriblement

    Re : pic 18F45K22 mettre une sortie à 1

    Salut,

    d'après ta config de osccon tu dépends des bits de config !
    Donc il faudrait que tu mettes en config:
    #pragma config FOSC = INTIO67

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

    Re : pic 18F45K22 mettre une sortie à 1

    Dans l'initialisation mettre PORTA à 0 ?

  7. #6
    docEmmettBrown

    Re : pic 18F45K22 mettre une sortie à 1

    Citation Envoyé par terriblement Voir le message
    Salut,

    d'après ta config de osccon tu dépends des bits de config !
    Donc il faudrait que tu mettes en config:
    #pragma config FOSC = INTIO67
    bah oui c'est bien ca, ca marche, merci beaucoup!
    Juste pour info car je débute, quel parametre de mon osccon t'as mis la puce à l'oreille ?

  8. #7
    docEmmettBrown

    Re : pic 18F45K22 mettre une sortie à 1

    et petite précision également, quand je met:
    Code:
    __delay_ms(1000);
    il ne comprend pas la ligne, une idée pourquoi?

  9. #8
    kevin8z

    Re : pic 18F45K22 mettre une sortie à 1

    Il te manque peut être #include <xc.h> et #define _XTAL_FREQ 16000000.
    Pour info l'argument que tu passe à la fonction __delay_ms() est peut être trop grand, en effet plus la fréquence est grande plus la valeur max diminue, je ne sais pas quelle est l'intervalle des grandeurs fonction de la fréquence, mais je crois que pour une fréquence d'oscillateur de 64MHz l'argument peut aller jusqu'à maximum 10 environs.

  10. #9
    paulfjujo

    Re : pic 18F45K22 mettre une sortie à 1

    Citation Envoyé par docEmmettBrown Voir le message
    Code:
    __delay_ms(1000);
    il ne comprend pas la ligne, une idée pourquoi?

    tester avec
    Code:
    __delay_ms(255);
    verifier si l'argument passé dans la fonction est un int 16 bit ou un short 8 bits..
    verifier aussi la syntaxe ( compilateur sensible à la case des lettres (majuscule ou minuscule )

  11. #10
    docEmmettBrown

    Re : pic 18F45K22 mettre une sortie à 1

    oui la variable était trop grande.
    Merci pour votre aide

  12. #11
    terriblement

    Re : pic 18F45K22 mettre une sortie à 1

    Citation Envoyé par docEmmettBrown Voir le message
    bah oui c'est bien ca, ca marche, merci beaucoup!
    Juste pour info car je débute, quel parametre de mon osccon t'as mis la puce à l'oreille ?
    Ce sont les 2 LSB du registre OSCCON :

    SCS<1:0>: System Clock Select bit
    1x = Internal oscillator block
    01 = Secondary (SOSC) oscillator
    00 = Primary clock (determined by FOSC<3:0> in CONFIG1H).

    Dès qu'on parle de "CONFIG" on fait référence aux bits de config.

Discussions similaires

  1. réduire le tirage pour mon poêle : mettre un réducteur à la sortie de la cheminée ?
    Par neudorf dans le forum Habitat bioclimatique, isolation et chauffage
    Réponses: 5
    Dernier message: 11/05/2015, 17h17
  2. EEPROM pour PIC 18F45K22
    Par juju713925 dans le forum Électronique
    Réponses: 9
    Dernier message: 23/05/2014, 13h40
  3. mettre bascule à la sortie d'un 555
    Par gabydu25 dans le forum Électronique
    Réponses: 27
    Dernier message: 31/01/2013, 19h37
  4. que mettre en sortie du microcontrôleur PIC16F877A
    Par invite33ef2db6 dans le forum Électronique
    Réponses: 29
    Dernier message: 23/04/2011, 21h41
  5. Mettre 230V sur une sortie antenne de tele??
    Par invite2542488d dans le forum Électronique
    Réponses: 9
    Dernier message: 15/05/2006, 15h04
Découvrez nos comparatifs produits sur l'informatique et les technologies.