Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur le langage C !

Modérateur : Jérémy

Programme PWM + BP avec un PIC16F18345
jo7
Débutant
Débutant
Messages : 67
Enregistré en : février 2018

#11 Message par jo7 » lun. 4 juin 2018 21:45 lien vers la Data-Sheet : Cliquez ici

Bonsoir Jeremy,

Je viens vers toi car je n'ai pas encore reçu ta réponse concernant mon programme . A bientôt ! :) :+1:

Programme PWM + BP avec un PIC16F18345
Jérémy
Administrateur du site
Administrateur du site
Messages : 2155
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#12 Message par Jérémy » lun. 4 juin 2018 21:57 lien vers la Data-Sheet : Cliquez ici

Bonsoir jo7,

J'ai pour habitude , de ne pas tout donner tout de suite, car beaucoup de personne ne donne pas suite .
Je regarde ca !
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Programme PWM + BP avec un PIC16F18345
Jérémy
Administrateur du site
Administrateur du site
Messages : 2155
Âge : 39
Enregistré en : juillet 2015
Localisation : Dans le sud
Contact :

#13 Message par Jérémy » lun. 4 juin 2018 22:15 lien vers la Data-Sheet : Cliquez ici

Je ne connais presque pas MPLABX, j'ai donc du mal avec la syntaxe.

As tu fais clignoter une led pour vérifier que ton OSCINT a 8Mhz tournais rond ?

JE n'ai jamais utilisé le module PWM d'un PIC , et cette notion de PR2 mais inconnue ! Je crois comprendre que le PR2 permet de reseter le TMR2 quand celui ci arrive à la même valeur . Mais cela implique un ratio de 50% ? sauf si on change la valeur de PR2 à chaque reset !

Ton Tmr2 est off en tout cas avec le T2CON = 0 ; il faudrait déjà l'allumer

Je serais toi , je commencerai pas régler le timer avec une grande valeur genre 100ms ( si possible) ainsi tu pourrais visualiser tes modification avec une simple led ! Une fois que tu aura vue ta led clignoter au rythme de ton tImer2 , c'est gagné ! il faudra juste modifier les valeurs.
C'est en faisant des erreurs, que l'on apprend le mieux !!!

Programme PWM + BP avec un PIC16F18345
paulfjujo
Avatar de l’utilisateur
Expert
Expert
Messages : 1086
Âge : 68
Enregistré en : juillet 2015
Localisation : 01800
Contact :

#14 Message par paulfjujo » mar. 5 juin 2018 08:05 lien vers la Data-Sheet : Cliquez ici

bonjour,

Avec la librairie PWM de mikroc
code issu de l'exemple
Rajouté le test du bouton pour faire Marche Arret
à adapter à ton MCU ( et en ASM ?)

avec le module ECCP
timer2 sert à definir la frequence PWM
pr2 regle le duty cycle


Code : Tout sélectionner


unsigned char current_duty
, Marche;

void InitMain() {
  ANSEL  = 0;                         // Configure AN pins as digital
  ANSELH = 0;
  C1ON_bit = 0;                       // Disable comparators
  C2ON_bit = 0;
  
  PORTA 
= 255;
  TRISA = 255;                        // configure PORTA pins as input
  PORTB = 0;                          // set PORTB to 0
  TRISB = 0;                          // designate PORTB pins as output
  PORTC = 0;                          // set PORTC to 0
  TRISC = 0;                          // designate PORTC pins as output
  PWM1_Init(5000);                    // Initialize PWM1 module at 5KHz
}

void main() {
  InitMain();
  current_duty  = 16;                 // initial value for current_duty
  PWM1_Start();                       // start PWM1
  PWM1_Set_Duty(current_duty);        // Set current duty for PWM1
 Marche=1;
 
  while 
(1) 
  
{                         // endless loop
    if (RA0_bit) {                    // button on RA0 pressed
      Delay_ms(40);
      current_duty++;                 // increment current_duty
      PWM1_Set_Duty(current_duty);
     }

    if (RA1_bit) {                    // button on RA1 pressed
      Delay_ms(40);
      current_duty--;                 // decrement current_duty
      PWM1_Set_Duty(current_duty);
     }

    if ((RA2_bit==0) && (Marche==1)){                    // button STOP
       current_duty=0;
        PWM1_Stop();
        Marche=0;
    } 
    if 
((RA2_bit==1) && (Marche==0)){                    // button STOP    
        current_duty=0;
        PWM1_Start();
        Marche=1;
    } 
    Delay_ms
(5);                      // slow down change pace a little
  }
}




05_-_Fiche_PIC18_modules_CCP.zip
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.

Programme PWM + BP avec un PIC16F18345
jo7
Débutant
Débutant
Messages : 67
Enregistré en : février 2018

#15 Message par jo7 » jeu. 21 juin 2018 10:27 lien vers la Data-Sheet : Cliquez ici

Bonjour à vous !

Merci pour toutes ces informations, je vais essayer d'appliqué vos conseils en adaptant avec mon code ! :bravo:


Retourner vers « Langage C »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités