DSPIC33F Advance PWM fonctionnality (GIV seront tous mes points)

S

seconde

Guest
Salut tout le monde,Je travaille avec le DSPIC33FJ16GS502 pendant un petit moment.Je voudrais que mon PWM pour déclencher une conversion ADC, mais sans succès.Quelqu'un sait comment faire??J'ai regardé autour de la détente des événements spéciaux et la détente dédié, mais sans succès.Je sais que ma fonction d'interruption ADC est autorisé parce qu'il est déclenchée au début du programme et si je ne réinitialise pas le drapeau qu'il boucles de et dans l'interruption ADC

Code:ADC //***************** ********************ADCONbits.ASYNCSAMP = 1; / / EN CONSTANTE D'ECHANTILLONNAGE

ADCONbits.FORM = 0; / Entier de sortie /

ADCONbits.SLOWCLK = 0; / / ADC est d'horloge par le primaire PLL (FVCO)

ADCONbits.SEQSAMP = 1;

ADCONbits.ADCS = 0; / / FADC / 1

ADCONbits.EIE = 1; / / interruption est générée après la première conversion est terminée

_SWTRG0 = 1;

ADPCFG = 0b1111111111111101; / / Tout numérique, mais AN1

ADCPC0bits.TRGSRC0 = 0b00100; / / 00100 = PWM génératrice 1 déclencheur principal choisi pour 0E et AN1

ADCPC0bits.IRQEN0 = 1; / / Activer IRQ génération à la demande de conversion de chaînes AN1 et 0E est terminée

IPC3bits.ADIP = 7; / / Set commune de niveau de priorité d'interruption ADC (niveau 1)

IFS0bits.ADIF = 0; / / Paire Clear ADC Interrupt Flag 0

IEC0bits.ADIE = 1; / / Activer Pair ADC 0 Interrupt

/ / IFS6bits.ADCP1IF = 0;

/ / IEC6bits.ADCP1IE = 1;

/ / IPC27bits.ADCP1IP = 7; / / 7 est la plus haute priorité

SRbits.IPL = 0;//**************** PWM

/ / PWMH et PWML sont actives haute et contrôlée par PWM Module en push-pull

/ / Enregistrer cyclique est PDC1 et mises à jour de l'actif MDC / PDCx / registres SDCx sont immédiats/ / Autre code ...

/ / Essayez de déclencher ADC

/ / La valeur de ce registre représente la valeur PWM capturé base de temps lorsque le bord d'attaque est

/ / Détecté sur l'entrée de courant limite.

TRGCON1 = 0;

SEVTCMP = 0x000f; / / Essayer des choses ici

TRIG1 = 250; / / Lorsque détente de match période devrait se produire

STRIG1 = 0x000f;TRGCON1bits.TRGDIV = 0; / / déclenche tous les cas de déclenchement

TRGCON1bits.TRGSTRT = 0; / / wait cycles 0 PWM pour générer de déclenchement

TRGCON1bits.DTM = 0;/ / Autre code

ADCONbits.ADON = 1; / / Activer ADCwhile (1);
 
Crois que j'ai trouvé la solution, mais je ne suis pas content de lui.Il coutures que le TRIGx générer une détente PWM (PWMCON1bits.TRGSTAT) n'est pas un début de conversion ...Je dois être raté quelque chose!

Toujours à la recherche de l'aide ici!
merci

Un peu plus tard ....

Trouver quelque chose Intresting, l'ADC est mis à jour mais ne pas générer une interruption

Code:__attribute__ void ((interruption, auto_psv)) _PWM1Interrupt (void)

(

if (PWMCON1bits.TRGSTAT == 1)

(int 0E, AN1;

double erreur = 0;

/ / = 0E ADCBUF0; / / Lire le résultat de conversion 0E

AN1 = ADCBUF1; / / Lire le résultat AN1 conversion

/ / _ADCP1IF = 0;

Erreur = Vout-((3.2 * an1/1024) * RD);

V = V (error/50);

PDC1 = DutyCycleDouble (1 - (Vin / V ));//, 0.000,0.5);)

_PWM1IF = 0;

)
 

Welcome to EDABoard.com

Sponsor

Back
Top