Bonsoir,
sur un dsPic, je voudrais implanter la fonction suivrante:
sur le dsPic en question j'ai 7 I/O et 6 OutputCompares:
selon l'etait du 7eme I/O:
- si le 7eme I/O est au niveau bas (0V), je voudrais que les OC soient configurés en in/out logiques, et que les 6 I/O restants soient copiée sur les OC confogiées en IO.
- si le 7eme I/O reçoit un noveau haut (signal continu), ou un signal crenaux (quel qu'en soit le rapport cyclique), je voudrais que les OC soient configurés en PWM, et qu'ils executent une sequence memorisée dans le dsPic, cette sequence contient deux informations: le rapport la durée de commade de chaque OC et le rapport cyclique pendant chacune de ces durées.
j'espere que c'est clair!
pour copier in sur out:
pour configurer en PWM:Code:#include 30F6014.h void main() { ADPCFG = 0xFFFF; LATB = 0; TRISB = 1; LATC = 0; TRISC = 0; while(1) { if (LATB1) LATC1=1; if (LATB2) LATC1=1; if (LATB3) LATC1=1; if (LATB4) LATC1=1; } }
est ce bon selon vous?Code:void init_PWM() { /* ~~~~~~~~~~~~~~~~~~~~~~ PWM1 Configuration ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ /* PWM1 I/O Control Register register */ IOCON1bits.PENH = 1; /* PWM1H is controlled by PWM module */ IOCON1bits.PENL = 1; /* PWM1L is controlled by PWM module */ IOCON1bits.PMOD = 0; /* Select Complementary Output PWM mode */ /* Load PDC1 register with initial Duty Cycle value */ PDC1 = 640; /* Duty Cycle = PDC2*1.05nsec = 672nsec */ /* Load PDTR1 and ALTDTR2 register with preset dead time value */ DTR1 = 64; /* Deadtime setting */ /* Deadtime = DTR1*1.05 = 67.2nsec */ ALTDTR1 = 64; /* Deadtime setting */ /* Deadtime = ALTDTR1*1.05 = 67.2nsec */ /* PHASE1 register */ PHASE1 = 0; /* No phase shift */ /* Configure PTPER register to produce 400kHz PWM frequency */ PTPER = 2380; /* PWM Period @30 MIPS, 2.5usec == 400kHz */ /* Period = PTPER*1.05nsec = 2.499usec /* PWM Time Base Control Register */ PTCONbits.PTEN = 1; /* Enable the PWM Module */ }
merci
ce qui me manque c'est comment configurer les OC en simples in/out?
et comment envoyé les ordres de commande predefinis vers les OC, une fois confogurés en PWM?
merci
-----