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);
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);