Forum: Mikrocontroller und Digitale Elektronik Renesas RX62N / Inbetriebnahme MTU1 - MTIOC1A und MTIOC1B


von Andre W. (andy4wpt)


Lesenswert?

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
Noch kein Account? Hier anmelden.