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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.