Bonjour,
J’utilise la carte de développement microchip basé sur le dspic30f6010a avec un module de puissance (onduleur)microchip. Mon but est de faire marcher la MLI et pour l'instant j'essai de faire marcher un pont de l’onduleur. J’ai prise un programme (an957) de microchip et j’ai tenté de l’adapter à ma carte et au capteur que j’avais c'est-à-dire d’un capteur à effet Hall à un QEI, cette dernière partie n’est pour l’instant pas implanté mais il y a un signal de position. Le registre OVDCON change bien mais il n’y a pas d’action au niveau des mosfetss de l'onduleur.
Je pense que c’est une erreur bête mais comme je suis débutant je galère pour la trouver. Si des bonnes âmes pouvaient m’aider !Code:int main(void) { LATE = 0x0000; TRISE = 0xFFC0; // PWMs are outputs // CNEN1 = 0x00E0; // CN5,6 and 7 enabled CNPU1 = 0x00E0; // enable internal pullups IFS0bits.CNIF = 0; // clear CNIF IEC0bits.CNIE = 1; // enable CN interrupt InitMCPWM(); InitADC10(); InitUART(); InitTMR3(); timer3avg = 0; while(1) { HallValue = (PORTB & 0x0038) >> 3; // shift right to get value 1, 2 ... 6 OVDCON = StateLoTableAntiClk[HallValue]; // Load the overide control register PWMCON1 = 0x0777; // enable PWM outputs //11101110111 Flags.RunMotor = 1; // set flag T3CONbits.TON = 1; / / start tmr3 polecount = 1; } } void InitMCPWM(void) { PTPER = FCY/FPWM - 1; PWMCON1 = 0x0700; // disable PWMs //11100000000 OVDCON = 0x0000; // allow control using OVD PDC1 = 100; // init PWM 1, 2 and 3 to 100 PDC2 = 100; PDC3 = 100; SEVTCMP = PTPER; PWMCON2 = 0x0F00; // 16 postscale values //111100000000 PTCON = 0x8000; // start PWM//1000000000000000 }
-----