help svp pwm pic18f4431

  • Auteur de la discussion bobo8080
  • Date de début
B

bobo8080

Nouveau
salut tt le monde ; est ce que qq1 peu m'aider à configurer le POWER CONTROL PWM MODULE car je trouvre rien sur le net;

ce que je veux fair :

-utiliser le l'osc interne pour avoir 8MHz et lir la frequ/4 sur le pin RA7.
-utiliser les 8 sortie pwm du pic
-les sortie pwm en mode complementaire
-avoir une frequencce min de 453KHz pour pwm
-savoir regeler le duty cyle de chaque paire pwm

merci d'avance.

voici mon code source si vous pouvez m'informer s'il ya des erreurs.


----------------------------------------------
----------------------------------------------



#include <p18f4431.h>
#include <pwm.h>

//-------------------------------Configuration setting ----------------------------------------------
/**
* Oscillator is configured as HS
* Fail safe monitor is enabled
* watch dog timer is disabled
* Extended instruction mode is disabled
* oscillator switch over is enabled
*/

#pragma config OSC = IRC //Internal RC, RA6 is CLKOUT, RA7 is I/O,

#pragma config MCLRE = OFF //désactiver la pin de Reset
#pragma config LVP = OFF //Low Voltage Programming désactivé
#pragma config DEBUG = OFF //débug désactivé

#pragma config FCMEN = OFF //Fail-Safe Clock désactivée


#pragma config PWRTEN = OFF //Power-up Timer désactivé
#pragma config BOREN = OFF //Reset dû a une tension trop basse désactivé
#pragma config BORV = 20 //Brown-out Reset Voltage
#pragma config WDTEN = OFF //Watchdog désactivé
#pragma config WDPS = 1024 //prédiviseur du watchdog
#pragma config STVREN = OFF //pas de reset du à la pile
#pragma config IESO = ON


/*********************************************************************
Function: void setup_io(void)
Overview: Sets up io ports for in and out in stepper mode
********************************************************************/
void setup_io(void)
{


TRISAbits.TRISA7 = 1; // INPUTS dir1
ANSEL0bits.ANS0 = 1; // SET RA0 AS ANALOG INPUT

TRISAbits.TRISA6 = 1; // INPUTS step1
ANSEL0bits.ANS1 = 1; // SET RA1 AS ANALOG INPUT

TRISBbits.TRISB5 = 0; // PWM4 (L1 MOTOR1 HBRIDGE)
TRISBbits.TRISB4 = 0; // PWM5

TRISBbits.TRISB2 = 0; // PWM2 (L2 MOTOR1 HBRIDGE)
TRISBbits.TRISB3 = 0; // PWM3

TRISBbits.TRISB0 = 0; // PWM0 (L1 MOTOR2 HBRIDGE)
TRISBbits.TRISB1 = 0; // PWM1

TRISDbits.TRISD6 = 0; // PWM6 (L2 MOTOR2 HBRIDGE)
TRISDbits.TRISD7 = 0; // PWM7


// define i/o bits
// PORT A
#define CUR_L1_M1 RA0 //IN FOR CURRENT LIMIT (L1 MOTOR1)
#define CUR_L2_M1 RA1 //IN FOR CURRENT LIMIT (L2 MOTOR1)

// PORT B
#define DIR1 RB7 //RB7 dir1 (Input)
#define STEP1 RB6 //RB1 step2 (Input)
}

/*********************************************************************
Function: void setup_pwm(void)
Overview: Sets up pwm modul
********************************************************************/
void setup_pwm(void)
{

//configuration du pwm :
PTCON0 = 0; //1:1 prescale,1:1 postscale


PWMCON0 = 0x70; //All odd PWM I/O pins enabled for PWM output
//PWM Output Pair in Complementary mode

PWMCON1 = 1; // 1:1 Postscale


PTPERL = 3; // frequence du pwm
PTPERH = 0;


DTCON = 0; // ++++pas de temps mort


PTCON1bits.PTEN = 1; // demarrage du module pwm




//??---------------------------------------------------
FLTCONFIG = 0; // pas de gestion des défauts
//---------------------------------------------------
//??DEFINITION du duty cycle :
PDC0H = 0X31; //SET Duty Cycle

PDC0L = 0X00;

//---------------------------------------------------
OVDCOND = 0XFF; //ACTIVATION DES SORTIES PWM

}
/********************************************************************
*********************************************************************/

void main(void)
{
setup_io();
setup_pwm();
while(1 == 1);
}
 

Sujets similaires

G
Réponses
88
Affichages
7 479
gaston83
G
G
Réponses
1
Affichages
1 209
Greg de Nîmes
G
V
Réponses
3
Affichages
889
vibram
V
Moi33
Réponses
3
Affichages
47 952
speedjf37
S
01power
Réponses
3
Affichages
13 716
01power
01power
D
Réponses
16
Affichages
4 005
DELTA-IO
D
J
Réponses
1
Affichages
1 409
pro-ms
P
D
Réponses
9
Affichages
2 992
David80
D
taratata
Réponses
4
Affichages
4 146
taratata
taratata
taratata
Réponses
1
Affichages
1 387
taratata
taratata
N
Réponses
0
Affichages
1 326
nathan33240
N
V
Réponses
4
Affichages
2 893
wika58
wika58
V
Réponses
7
Affichages
1 945
vibram
V
V
Réponses
62
Affichages
39 153
Dardar88
Dardar88
Haut