programmation C du 12f629 - Page 10
Répondre à la discussion
Page 10 sur 14 PremièrePremière 1011 12 13 DernièreDernière
Affichage des résultats 271 à 300 sur 412

programmation C du 12f629



  1. #271
    Gérard

    Re : programmation C du 12f629


    ------

    Citation Envoyé par marc2009 Voir le message
    bon c'est pas marqué, mais si tu connais la valeur de la résistance interne pour chaque patte ...
    Aucune idée. Ca doit être dans les datasheet.

    Citation Envoyé par marc2009 Voir le message
    sinon, une résistance de 27kohms ( patte en sortie ) avant un transistor ça le fait ? ou ça va être mauvais ? ( mais c'est le résultat du calcul qu'on a fait )
    C'est quel calcul ?
    On a déjà dit et écrit tellement de truc ...
    Tu parles de Rb (résistance de base) ?
    Quelle est la charge ?
    Quel est le transistor ?

    -----

  2. #272
    marc2009

    Re : programmation C du 12f629

    pour la résistance interne, non c'est pas écrit dans le datasheet, enfin j'ai pas vu, mais laisses tomber, on aura pas besoin de ça, surtout qu'il n'y a qu'une seule entrée ( à part celles pour le quartz et Vdd )

    sinon, voilà
    Le transistor BC 548B
    Gain=200
    Ib=ic/ β=30/200=0.15mA sortie a l’état haut est à 5V donc Vr=5-0.7=4.3V
    R=V/ib=4.3/0.00015=28666.6 Ω soit 27K Ω
    30mA c'est l'intensité ( max ? ) du voyant

  3. #273
    marc2009

    Re : programmation C du 12f629

    ah en fait, je parlais d'un calcul que mon ami a fait, c'est extrait du fichier doc...

  4. #274
    Gérard

    Re : programmation C du 12f629

    Pour être sûr de saturer le transistor, tu prends un Ib double de ce que tu as calculé.
    Prendre 15K pour Rb.

  5. #275
    marc2009

    Re : programmation C du 12f629

    Citation Envoyé par Gérard Voir le message
    Pour être sûr de saturer le transistor, tu prends un Ib double de ce que tu as calculé.
    Prendre 15K pour Rb.
    ohlala, faut vraiment que je revoie l'SI et les transistors !

    Mais pourquoi prendre le double de ib qu'on a trouvé ? Enfin si t'es sûr ... donc à la place de 27k je prends 15k ?

  6. #276
    Gérard

    Re : programmation C du 12f629

    Le calcul est une chose.
    Imagine que tu tombes sur un transistor un peu faible avec un béta de 150 au lieu de 200, que ta charge demande 40mA au lieu de 30 ...
    Tu seras dans les choux.
    En prenant Ib = 2xIb calculé, tu es tranquille et le PIC saura fournir ce courant supplémentaire. (entre 0,15mA et 0,30mA, pas de quoi fouetter un chat)

    Bonne nuit.

  7. #277
    marc2009

    Re : programmation C du 12f629

    mais le 30, c'est le courant du voyant, pas le courant de charge, ou c'est la même chose ?!

    bon, donc je prends une résistance de 15K

    Bonne nuit ( à demain peut etre )

  8. #278
    Gérard

    Re : programmation C du 12f629

    Citation Envoyé par marc2009 Voir le message
    mais le 30, c'est le courant du voyant, pas le courant de charge, ou c'est la même chose ?!
    Le voyant est la charge du transistor ou ce que le transistor alimente.

    Citation Envoyé par marc2009 Voir le message
    bon, donc je prends une résistance de 15K

    Bonne nuit ( à demain peut etre )
    As-tu compris le principe ?
    Tu fais un calcul théorique et tu fais x 2.

  9. #279
    Gérard

    Re : programmation C du 12f629

    J'oubliais :

    BONNE FÊTE

  10. #280
    marc2009

    Re : programmation C du 12f629

    oui je pense comprendre, comme il se peut que le transistor puisse avoir un gain inférieur à 200, on laisse de la marge, on prend le seuil "critique" c'est ca ? Mais le gain ne pourrait il pas être aussi supérieur à 200 ? Et la c'est le drame

    BONNE FÊTE
    Mais BONNE FÊTE à toi aussi mon cher Gérard

  11. #281
    Gérard

    Re : programmation C du 12f629

    Non ce n'est pas le drame.
    C'est le récepteur dans le circuit collecteur qui limitera le courant collecteur.
    On sera tout simplement au-dessus de Ib mini.

    C'est pas ta fête aujourd'hui ?

  12. #282
    marc2009

    Re : programmation C du 12f629

    Citation Envoyé par Gérard Voir le message
    Non ce n'est pas le drame.
    C'est le récepteur dans le circuit collecteur qui limitera le courant collecteur.
    On sera tout simplement au-dessus de Ib mini.

    C'est pas ta fête aujourd'hui ?
    donc prendre un Ib plus grand est bien ok

    Sinon, oui Merci ( je l'avais oublié )

  13. #283
    marc2009

    Re : programmation C du 12f629

    Pour en revenir a cette impédance d'entrée de 10K, c'est la somme des 2 résistances du pont diviseur qui ne doit pas dépassée 10K ou autre chose ?

    Pour l'impédance de sortie ( tu m'as dit qu'il fallait en ternir compte ), je ne risque rien donc avec une résistance de 15K, et une autre ( pour le moteur ) de 3.3K, c'est bon ? ( j'ouvrirais un sujet pour le schéma électronique au pire des cas )

  14. #284
    Gérard

    Re : programmation C du 12f629

    Citation Envoyé par marc2009 Voir le message
    Pour en revenir a cette impédance d'entrée de 10K, c'est la somme des 2 résistances du pont diviseur qui ne doit pas dépassée 10K ou autre chose ?
    La doc n'est pas très bavarde sur ce point.
    J'aurais tendance à dire la somme des 2.

    Citation Envoyé par marc2009 Voir le message
    Pour l'impédance de sortie ( tu m'as dit qu'il fallait en ternir compte ), je ne risque rien donc avec une résistance de 15K, et une autre ( pour le moteur ) de 3.3K, c'est bon ? ( j'ouvrirais un sujet pour le schéma électronique au pire des cas )
    Ce que voulais dire :
    la charge de la sortie (l'impédance) doit être telle que le courant max ne soit pas atteint.
    Il y a aussi une restriction sur le courant total des sorties.

  15. #285
    marc2009

    Re : programmation C du 12f629

    juste une chose : comme on a 8 IRQ/s avec le quartz de 2.0480 MHz, ça veut dire qu'on a un débordement, et donc une interruption toutes les 125ms c'est ça ?

  16. #286
    mictour

    Re : programmation C du 12f629

    Bonjour à vous deux,

    Bon je connais un peu CC5X mais pas du tout les 12F !!
    Un coup d'oeil rapide à ton dernier code, je vois :

    TRISIO = 0b00111100;
    //OPTION = 0b10101000;
    sortie = 0b00000010;
    T1CON = 0b00000001;
    CMCON = 0b00000111;
    TMR1H=6;
    TMR1L=0;
    INTCON = 0b11000000;
    PIE1 = 0b00000001;
    ADCON0 = 0b00001011;
    ANSEL = 0b00001011;
    ADRESH = tmp.high8;
    ADRESL = tmp.low8;
    for (; {
    if (tmp==531) {...}

    Ceci ne te surprends pas un peu :

    ADRESH = tmp.high8;
    ADRESL = tmp.low8;

    Moi, si.
    Bonne soirée, mictour.

  17. #287
    marc2009

    Re : programmation C du 12f629

    c'est faux ? C'est ce que tu m'as écrit o_O

  18. #288
    marc2009

    Re : programmation C du 12f629

    nan j'ai compris l'erreur ^^' : c'est l'inverse

    Code:
    tmp.high8 = ADRESH;
    tmp.low8 = ADRESL;

  19. #289
    Gérard

    Re : programmation C du 12f629

    Heureusement que mictour suit !

    Pour les irq, fais les calculs, tu sais faire maintenant.

  20. #290
    marc2009

    Re : programmation C du 12f629

    Citation Envoyé par Gérard Voir le message
    Heureusement que mictour suit !

    Pour les irq, fais les calculs, tu sais faire maintenant.
    je ne parlais pas d'incrémentations, mais d'interruptions xD

    c'est pas juste ?

  21. #291
    mictour

    Re : programmation C du 12f629

    bonsoir Gérard,

    Heureusement que mictour suit !

    ... mais de loin et avec beaucoup moins d'assiduité que toi !

    Bonne soirée à vous deux, mictour.

  22. #292
    Gérard

    Re : programmation C du 12f629

    Citation Envoyé par marc2009 Voir le message
    je ne parlais pas d'incrémentations, mais d'interruptions xD

    c'est pas juste ?
    C'est quoi cette histoire d'incrémentation ?

    Les irq, on en a déjà parlé.

  23. #293
    Gérard

    Re : programmation C du 12f629

    Citation Envoyé par mictour Voir le message
    bonsoir Gérard,

    Heureusement que mictour suit !

    ... mais de loin et avec beaucoup moins d'assiduité que toi !

    Bonne soirée à vous deux, mictour.
    De loin peut-être mais de manière efficace.

  24. #294
    marc2009

    Re : programmation C du 12f629

    Citation Envoyé par Gérard Voir le message
    C'est quoi cette histoire d'incrémentation ?

    Les irq, on en a déjà parlé.
    bah, on a 8 IRQ/s, donc logiquement on a bien 1 IRQ toutes les 125ms non ?

  25. #295
    marc2009

    Re : programmation C du 12f629

    tu n'as pas l'air d'accord xD rassures moi, c'est bon !?

    A part ça, je poste le code modifié : "changelog" : j'ai sorti le if (irq==8) ... de l'interruption pour mettre à la place ADCON0.1=1; car je me suis rendu compte que si l'utilisateur veut brancher le pied au secteur, la tension va augmenter et donc ça ne sera pas pris en compte car le convertisseur ne se sera pas mis en marche après ... donc j'ai pensé que le mettre dans l'interruption était une bonne idée ?! enfin sauf si vous y voyez un inconvénient bien sûr, toute critique est bonne à prendre ..

    Code:
    #pragma chip PIC12F675 // déclaration du pic
    #pragma library 1
    
    //#pragma config |= 0x31E1 // faut que je modifies le config du fichier header je crois
    
    #define sortie GPIO
    #define led GPIO2
    #define moteur GPIO1
    
    char irq;
    char sec;
    uns16 CAN;
    
    #include "int16CXX.h" // fichier interruptions
    
    //------------------interruption-----------------------
    
    #pragma origin 4
    
    interrupt timer1( void)
    {
    
    	int_save_registers    // W, STATUS (and PCLATH if required)
    
           //char sv_FSR = FSR;  // save FSR if required
    
           // handle the interrupt (insert application code here)
    
    		if (TMR1IF) {++irq;ADCON0.1=1;TMR1H=6;TMR1IF=0;}
    
           //FSR = sv_FSR;       // restore FSR if saved
    
           int_restore_registers // W, STATUS (and PCLATH if required)
    
           /* IMPORTANT : GIE should normally NOT be set or cleared in
    
              the interrupt routine. GIE is AUTOMATICALLY cleared on
    
              interrupt entry by the CPU and set to 1 on exit (by
    
              RETFIE). Setting GIE to 1 inside the interrupt service
    
              routine will cause nested interrupts if an interrupt is
    
              pending. Too deep nesting may crash the program ! */
    
       }
    
    void main(void)
    
    {
    
    	TRISIO = 0b00111100;
    
    	OPTION = 0b10101000;
    
    	sortie = 0b00000010;
    
    	T1CON =  0b00000001;
    
    	CMCON =  0b00000111;
    
    	INTCON = 0b11000000;
    
    	PIE1 =   0b00000001;
    
    	ADCON0 = 0b00001001;
    
    	ANSEL =  0b00001011;
    	TMR1H=6;
    
    	TMR1L=0;	
    
    	CAN.high8 = ADRESH;
    	CAN.low8 =  ADRESL;
    
    for (;;) {
    		if (irq==8) {++sec;irq=0;}
    		if (CAN<531) {led=!led;}
    		if ((sec==1200).(CAN>531)) {moteur=1;if(sec==1201) {moteur=0;sec=0;}}
    
    }
    
    }

  26. #296
    Gérard

    Re : programmation C du 12f629

    On verra demain.

  27. #297
    marc2009

    Re : programmation C du 12f629

    Citation Envoyé par Gérard Voir le message
    On verra demain.
    donc t'es pas dac avec mon raisonnement ?

  28. #298
    marc2009

    Re : programmation C du 12f629

    edit ( pour le code ) : OPTION n'est pas encore configuré, car je sais pas s'il faut que je le configure ( comme on utilise pas le timer0 ), et s'il faut le configurer, je sais pas comment ... bon on verra demain ..

    ... en espérant que tu dois dac pour mon raisonnement Gérard xD ( 1 IRQ toutes les 125 ms ... )

    @++

  29. #299
    mictour

    Re : programmation C du 12f629

    Bonjour à vous deux,

    Une petite question pour commencer :
    ou donc as-tu déniché cette routine d'interruption ?

    Je n'y vois pas TIMER1IF = 0; Selon moi (Lol) à peine sorti, on y revient !
    Dans la partie initialisation GIE = 1; et TIMER1IE =1; sont absent ...
    C'est voulu ?
    ADCON0.1=1 ... Si je comprend bien, tu veux déclancher la lecture du CAN à chaque passage dans l'interruption ?
    Heeeu, le registre OPTION ne sert pas qu'a configurer le TIMER0. A voir.
    De mémoire ... #pragma library 1 n'est actif que dans la version complète (payante !).
    A bientôt ? mictour.

  30. #300
    marc2009

    Re : programmation C du 12f629

    ou donc as-tu déniché cette routine d'interruption ?
    Dans le fichier int16CXX.h de cc5x

    Je n'y vois pas TIMER1IF = 0; Selon moi (Lol) à peine sorti, on y revient !
    Mais elle y est !!

    Dans la partie initialisation GIE = 1; et TIMER1IE =1; sont absent ...
    C'est voulu ?
    GIE n'est pas à configurer comme il est écrit et pour l'autre, c'est un registre qui le configure ... ( c'est l'interruption du timer1 non ? )

    ADCON0.1=1 ... Si je comprend bien, tu veux déclancher la lecture du CAN à chaque passage dans l'interruption ?
    Bah, le voilà le problème : la conversion ne se fait que manuellement, en mettant ce bit à 1. Or, si l'utilisateur branche sur le secteur le pied de parasol, la tension augmentera ... ( je parle du cas où CAN<531 ) et donc le nombre de points qui équivaudrait à la nouvelle tension sera aussi supérieur à 531... et je n'aurais pas fait de conversion après ... voilà pourquoi j'ai pensé à mettre la conversion à chaque interruption, c'est a dire toutes les 125ms ... mais si tu as une autre idée ..

    Heeeu, le registre OPTION ne sert pas qu'a configurer le TIMER0. A voir.
    donc je le configure pas ?

    De mémoire ... #pragma library 1 n'est actif que dans la version complète (payante !).
    Bizarre, quand je compile le programme, il devrait me le dire nan ? Bon, je le commente sinon ...

    ++

Discussions similaires

  1. Probleme de programmation (PIC 12F629 )la seconde fois
    Par alainav1 dans le forum Électronique
    Réponses: 7
    Dernier message: 26/03/2009, 16h06
  2. lire un pic 12f629
    Par invite6ce15d51 dans le forum Électronique
    Réponses: 1
    Dernier message: 06/06/2008, 10h48
  3. Micro- programmes PIC 12f629
    Par pickipic dans le forum Électronique
    Réponses: 7
    Dernier message: 11/02/2008, 00h46
  4. Quel programateur pour le pic 12f629
    Par jojo86 dans le forum Électronique
    Réponses: 4
    Dernier message: 21/08/2006, 22h04
  5. Programmation 3D
    Par invite769675d7 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 01/11/2005, 06h07
Découvrez nos comparatifs produits sur l'informatique et les technologies.