Hallo zusammen,
ich arbeite nun schon einige Zeit an dem Problem:
Die MTU1 soll zwei Kanäle mit PWM versorgen. Im Idealfall 1kHz und beide
Kanäle sollte sich einzeln einstellen lassen.
Ich bekomme aber nur den Ausgang MTIOC1A mit PWM. Der zweit Port
(MTIOC1B) rührt sich nicht.
Lg
André
Hier mein Init:
#define SYS_CLK 100000000 //Hz
MSTP_MTUA = 0; // enable MTU3
MTU1.TCR.BIT.TPSC = 0x03; // prescale of 64 gives a 750 kHz clock
- page 854
MTU1.TCR.BIT.CCLR = 0x02; // clear counter on TGRB match - page
855
MTU1.TIOR.BIT.IOA = 0x01; // MTIOCA3 pin initial low, high on match
MTU1.TIOR.BIT.IOB = 0x02; // MTIOCA3 pin initial low, high on match
MTU1.TMDR.BIT.MD = 0x02; // PWM mode 1 - page 859
MTU1.TGRB = 750; // frequency of 1000 Hz
MTU1.TGRA = 375; // 50% duty cycle
/*
if (Percent >= 100)
{
Percent = 100;
//MTU1.TGRA = MTU1.TGRB - 1;
MTU1.TGRA = -1;
}
else if (Percent <= 0)
{
Percent = 0;
MTU1.TGRA = MTU1.TGRB;
}
else MTU1.TGRA = (MTU1.TGRB / 100) * Percent; // x% duty cycle
*/
MTU1.TIER.BIT.TGIEB = 1; // interrupt on TGRB (every period)
IPR(MTU1,TGIB1) = 1; // interrupt priority to lowest level
// Synchronous run???
//MTUA.TSYR.BIT.SYNC1 = 1;
// Set this high to start beeping
MTUA.TSTR.BIT.CST1 = 1; // start/stop MTU3
//TODO
//Check ClockEdgeSelcevt from TCR-Register
//MTU3.TCR.BIT.CKEG
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.