<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>MPC5xxx中的主题 Re: MPC5606B eMIOS0 PWM generation Phase lag?</title>
    <link>https://community.nxp.com/t5/MPC5xxx/MPC5606B-eMIOS0-PWM-generation-Phase-lag/m-p/459890#M1597</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;I looks you want to control 3phase motor or something similar.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;I guess the usage of the OPWMB mode will be better for you. In this mode channel is running from common counter bus (e.g. counter bus A), so this will ensure a synchronicity on all channels. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;To disable certain channels you can just set 0% duty cycle, that’s take effect in next PWM cycle.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;Or you can use the OCDIS register to disable the channel. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR, Petr &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 29 Apr 2016 08:57:24 GMT</pubDate>
    <dc:creator>PetrS</dc:creator>
    <dc:date>2016-04-29T08:57:24Z</dc:date>
    <item>
      <title>MPC5606B eMIOS0 PWM generation Phase lag?</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5606B-eMIOS0-PWM-generation-Phase-lag/m-p/459885#M1592</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have written a program to Generate 6 PWM pulse of 20kHz&amp;nbsp; and Initial DutyCycle = 10% at &lt;/P&gt;&lt;P&gt;eMIOS0_1 =&amp;gt; PA[1]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eMIOS0_2 =&amp;gt; PA[2]&lt;/P&gt;&lt;P&gt;eMIOS0_3 =&amp;gt; PA[3]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eMIOS0_4 =&amp;gt; PA[4]&lt;/P&gt;&lt;P&gt;eMIOS0_5 =&amp;gt; PA[5]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; eMIOS0_6 =&amp;gt; PA[6]&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Initial Duty_Cycle = 10%&lt;/P&gt;&lt;P&gt; Press Switch1 =&amp;gt; PE[64], Duty_Cycle = 20%&lt;/P&gt;&lt;P&gt; Press Switch2 =&amp;gt; PE[65], Duty_Cycle = 40%&lt;/P&gt;&lt;P&gt; Press Switch3 =&amp;gt; PE[66], Duty_Cycle = 60%&lt;/P&gt;&lt;P&gt; Press Switch4 =&amp;gt; PE[67], Duty_Cycle = 80%&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I checked the Output on DSO.&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Even though I am Enabling all the eMIOS channel at the same time, but still I am getting 1uSec phase lag on PWM at CH5 PA[5] and CH6 PA[6]. (PWM at CH[1] to CH[4] are IN-Phase i.e. No Phase lag)&lt;/P&gt;&lt;P&gt;Why such phase lag is happening?&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I tried to change sequence of of updating (CADR, CBDR ,CCR) Registers of different channels , But couldn't see any logical change? &lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So, the question is, &lt;/P&gt;&lt;P&gt;1. Why such phase lag is occurring?&lt;/P&gt;&lt;P&gt;2. How to get rid of this phase lag?&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My Code is as follows:&lt;/P&gt;&lt;P&gt;********************************************************************************************************************************************&lt;/P&gt;&lt;P&gt;/********************************************************************&lt;/P&gt;&lt;P&gt; 20KHz PWM at &lt;/P&gt;&lt;P&gt; eMIOS0_1 =&amp;gt; PA[1], eMIOS0_2 =&amp;gt; PA[2], &lt;/P&gt;&lt;P&gt; eMIOS0_3 =&amp;gt; PA[3], eMIOS0_4 =&amp;gt; PA[4], &lt;/P&gt;&lt;P&gt; eMIOS0_5 =&amp;gt; PA[5], eMIOS0_6 =&amp;gt; PA[6].&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt; Initial Duty_Cycle = 10%&lt;/P&gt;&lt;P&gt; Press Switch1, Duty_Cycle = 20%&lt;/P&gt;&lt;P&gt; Press Switch2, Duty_Cycle = 40%&lt;/P&gt;&lt;P&gt; Press Switch3, Duty_Cycle = 60%&lt;/P&gt;&lt;P&gt; Press Switch4, Duty_Cycle = 80%&lt;/P&gt;&lt;P&gt; Coding Done by Akshay P. Daga &lt;/P&gt;&lt;P&gt; Date: 26/03/2016&lt;/P&gt;&lt;P&gt; *********************************************************************/&lt;/P&gt;&lt;P&gt;/*********************************************************************&lt;/P&gt;&lt;P&gt;&amp;nbsp; Frequency Calculation of PWM: &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; For "x" Hz Frequency, B_VAL = 1/[(x)*10^-6]&lt;/P&gt;&lt;P&gt;&amp;nbsp; Duty Cycle Calculation of PWM:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; For "y" % Duty Cycle, A_VAL = (y)*100/(x)&lt;/P&gt;&lt;P&gt; *********************************************************************/&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#include "MPC5606B.h"&lt;/P&gt;&lt;P&gt;#define SW_1 64&lt;/P&gt;&lt;P&gt;#define SW_2 65&lt;/P&gt;&lt;P&gt;#define SW_3 66&lt;/P&gt;&lt;P&gt;#define SW_4 67&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#define CH_1 1&lt;/P&gt;&lt;P&gt;#define CH_2 2&lt;/P&gt;&lt;P&gt;#define CH_3 3&lt;/P&gt;&lt;P&gt;#define CH_4 4&lt;/P&gt;&lt;P&gt;#define CH_5 5&lt;/P&gt;&lt;P&gt;#define CH_6 6&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#define eMIOS0CH0 0&lt;/P&gt;&lt;P&gt;#define eMIOS0CH1 1&lt;/P&gt;&lt;P&gt;#define eMIOS0CH2 2&lt;/P&gt;&lt;P&gt;#define eMIOS0CH3 3&lt;/P&gt;&lt;P&gt;#define eMIOS0CH4 4&lt;/P&gt;&lt;P&gt;#define eMIOS0CH5 5&lt;/P&gt;&lt;P&gt;#define eMIOS0CH6 6&lt;/P&gt;&lt;P&gt;#define eMIOS0CH7 7&lt;/P&gt;&lt;P&gt;#define eMIOS0CH8 8&lt;/P&gt;&lt;P&gt;#define eMIOS0CH9 9&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#define B_VAL 50&lt;/P&gt;&lt;P&gt;#define A_VAL1 10&lt;/P&gt;&lt;P&gt;#define A_VAL2 20&lt;/P&gt;&lt;P&gt;#define A_VAL3 30&lt;/P&gt;&lt;P&gt;#define A_VAL4 40&lt;/P&gt;&lt;P&gt;#define INITIAL_A_VAL 5&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;#define GPIO_INPUT 0x0101&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;uint16_t sw1State;&lt;/P&gt;&lt;P&gt;uint16_t sw2State;&lt;/P&gt;&lt;P&gt;uint16_t sw3State;&lt;/P&gt;&lt;P&gt;uint16_t sw4State;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;//uint32_t currDutyCycle;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void InitModesAndClks(void);&lt;/P&gt;&lt;P&gt;void eMIOS_Init(void);&lt;/P&gt;&lt;P&gt;void Init_GPIO(void);&lt;/P&gt;&lt;P&gt;//void switch_to_25_10ms(void);&lt;/P&gt;&lt;P&gt;//void switch_to_75_20ms(void);&lt;/P&gt;&lt;P&gt;void switch_PWM_DutyCycle(uint32_t);&lt;/P&gt;&lt;P&gt;void main(void);&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt; /* Enter RUN0 with PLL as sys clk (64 MHz) with 8 MHz crystal reference. */&lt;/P&gt;&lt;P&gt;void InitModesAndClks(void) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ME.MER.R = 0x0000001D;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enable DRUN, RUN0, SAFE, RESET modes */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CGM.FMPLL_CR.R = 0x01200100;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 8MHz xtal: Set PLL0 to 64 MHz */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ME.RUNPC[0].R = 0x000000FE; /* enable peripherals run in all modes */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ME.RUN[0].R = 0x001F0074;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* RUN0 cfg: IRCON,OSC0ON,PLL0ON,syclk=PLL */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Mode Transition to enter RUN0 mode: */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ME.MCTL.R = 0x40005AF0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enter RUN0 Mode &amp;amp; Key */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ME.MCTL.R = 0x4000A50F;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Enter RUN0 Mode &amp;amp; Inverted Key */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while (ME.GS.B.S_MTRANS) {} ;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Wait for mode transition to complete */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(ME.GS.B.S_CURRENTMODE != 4) {}; /* Verify RUN0 is the current mode */&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void eMIOS_Init(void) //1ms duty cycle 50%&lt;/P&gt;&lt;P&gt;{ EMIOS_0.MCR.R = 0x14004000; //EMIOS Module Configuration Register (EMIOS_MCR) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Module : Enable&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Global Freeze: Disabled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Global Time Base Enable: Yes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Global Prescaler Enable: Yes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Global Prescaler Value:&amp;nbsp;&amp;nbsp; 63&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; //EMIOS_0.MCR.R = 0x14000000; //Prescalar value = 1&lt;/P&gt;&lt;P&gt;&amp;nbsp; EMIOS_0.MCR.R = 0x14004100; //Prescalar value = 64&lt;/P&gt;&lt;P&gt;&amp;nbsp; EMIOS_0.OUDR.R = 0x00000000; //EMIOS Output Update Disable Register (EMIOS_OUDR) (EMIOSOUDIS in Reference Manual)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Channel n output is Enabled&amp;nbsp; */ &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // En&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp;&amp;nbsp; n = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31 */&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;//CH[1]&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; EMIOS_0.CH[CH_1].CADR.R = 0x000001F4; //Unified Channel 01 Registers&amp;nbsp; //[16-31]&amp;nbsp; Channel eMIOS_0_CADR2 Data Register - eMIOS_0_CADR2 : Value = 500&lt;/P&gt;&lt;P&gt;&amp;nbsp; EMIOS_0.CH[CH_1].CBDR.R = 0x000003E8; //Unified Channel 01 Registers&amp;nbsp; //[16-31]&amp;nbsp; Channel eMIOS_0_CBDR2 Data Register - eMIOS_0_CBDR2 : Value = 1000&lt;/P&gt;&lt;P&gt;&amp;nbsp; EMIOS_0.CH[CH_1].CCR.R = 0x02000658; //Active High PWM, Internal Prescaler = 1&lt;/P&gt;&lt;P&gt;&amp;nbsp; //EMIOS_0.CH[CH_1].CCR.R = 0x020006D8; //Active Low PWM //Unified Channel 02 Registers (EMIOSC[n])&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Channel Control Register&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Freeze Enable : Normal operation&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Prescaler Divide Ratio : 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Prescaler Enable : Enable&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Flag generation Request: Assigned to Interrupt */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Input Filter: Not Applicable&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Filter clock select : Prescaler clock&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Flag Enable : IRQ/DMA not generated&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Force Match A : Disabled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Force Match B : Disabled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Bus Select : Internal counter&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Edge Selection Bit :Not Applicable&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Edge Polarity :Set on Match A = Active Low PWM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Mode : Output Pulse Width and Frequency M*/&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* odulation Buffered&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; //EMIOS_0.CH[CH_1].CCR.R = 0x0E000658; //Active High PWM, Internal Prescalar = 4&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; //CH[2]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_2].CADR.R = 0x000001F4; //A_VAL= 500&amp;nbsp; -&amp;gt; 50%&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_2].CBDR.R = 0x000003E8; //B_VAL= 1000 -&amp;gt; 1KHz&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_2].CCR.R = 0x02000658;&amp;nbsp; //Active High PWM, Internal Prescaler = 1&lt;/P&gt;&lt;P&gt;&amp;nbsp; //CH[3]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_3].CADR.R = 0x000001F4; //A_VAL= 500&amp;nbsp; -&amp;gt; 50%&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_3].CBDR.R = 0x000003E8; //B_VAL= 1000 -&amp;gt; 1KHz&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_3].CCR.R = 0x02000658;&amp;nbsp; //Active High PWM, Internal Prescaler = 1&lt;/P&gt;&lt;P&gt;&amp;nbsp; //CH[4]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_4].CADR.R = 0x000001F4; //A_VAL= 500&amp;nbsp; -&amp;gt; 50%&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_4].CBDR.R = 0x000003E8; //B_VAL= 1000 -&amp;gt; 1KHz&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_4].CCR.R = 0x02000658;&amp;nbsp; //Active High PWM, Internal Prescaler = 1&lt;/P&gt;&lt;P&gt;&amp;nbsp; //CH[5]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_5].CADR.R = 0x000001F4; //A_VAL= 500&amp;nbsp; -&amp;gt; 50%&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_5].CBDR.R = 0x000003E8; //B_VAL= 1000 -&amp;gt; 1KHz&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_5].CCR.R = 0x02000658;&amp;nbsp; //Active High PWM, Internal Prescaler = 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; //CH[6]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_6].CADR.R = 0x000001F4; //A_VAL= 500&amp;nbsp; -&amp;gt; 50%&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_6].CBDR.R = 0x000003E8; //B_VAL= 1000 -&amp;gt; 1KHz&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_6].CCR.R = 0x02000658;&amp;nbsp; //Active High PWM, Internal Prescaler = 1&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //EMIOS_0.UCDIS.R = 0x00000000; //EMIOS Channel Disable Register&amp;nbsp; (EMIOS_UCDIS)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Channel n is Enabled&amp;nbsp; */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp;&amp;nbsp; n = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31, */&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EMIOS_0.UCDIS.R = 0xFFFFFFFF; //All EMIOS Channel Disabled&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; EMIOS_0.UCDIS.R &amp;amp;= ~((1&amp;lt;&amp;lt;eMIOS0CH1)|(1&amp;lt;&amp;lt;eMIOS0CH2)|(1&amp;lt;&amp;lt;eMIOS0CH3)|(1&amp;lt;&amp;lt;eMIOS0CH4)|(1&amp;lt;&amp;lt;eMIOS0CH5)|(1&amp;lt;&amp;lt;eMIOS0CH6)); &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; //eMIOS0_CH1,2,3,4,5,6 are Enabled.&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void Init_GPIO(void)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PCR[SW_1].R = GPIO_INPUT;&amp;nbsp; //GPIO as Input&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PCR[SW_2].R = GPIO_INPUT;&amp;nbsp; //GPIO as Input&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PCR[SW_3].R = GPIO_INPUT;&amp;nbsp; //GPIO as Input&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PCR[SW_4].R = GPIO_INPUT;&amp;nbsp; //GPIO as Input&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PCR[CH_1].R = 0x0600; //PA=01-&amp;gt;AF1, OBE=1&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PCR[CH_2].R = 0x0600; //PA=01-&amp;gt;AF1, OBE=1&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PCR[CH_3].R = 0x0600; //PA=01-&amp;gt;AF1, OBE=1&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PCR[CH_4].R = 0x0600; //PA=01-&amp;gt;AF1, OBE=1&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PCR[CH_5].R = 0x0600; //PA=01-&amp;gt;AF1, OBE=1&lt;/P&gt;&lt;P&gt;&amp;nbsp; SIU.PCR[CH_6].R = 0x0600; //PA=01-&amp;gt;AF1, OBE=1&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt;void switch_to_25_10ms(void) //10ms 25%/75% -&amp;gt; 100Hz&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; EMIOS_0.CH[CH_2].CADR.R = 0x000009C4; //&amp;nbsp; [16-31]&amp;nbsp; Channel eMIOS_0_CADR2 Data Register - eMIOS_0_CADR2 : Value = 2500&lt;/P&gt;&lt;P&gt;&amp;nbsp; EMIOS_0.CH[CH_2].CBDR.R = 0x00002710; //&amp;nbsp; [16-31]&amp;nbsp; Channel eMIOS_0_CBDR2 Data Register - eMIOS_0_CBDR2 : Value = 10000&lt;/P&gt;&lt;P&gt;} */&lt;/P&gt;&lt;P&gt;/*&lt;/P&gt;&lt;P&gt;void switch_to_75_20ms(void) //20ms 75%/25% -&amp;gt; 50Hz&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; EMIOS_0.CH[CH_2].CADR.R = 0x00003A98; //&amp;nbsp; [16-31]&amp;nbsp; Channel eMIOS_0_CADR2 Data Register - eMIOS_0_CADR2 : Value = 500&lt;/P&gt;&lt;P&gt;&amp;nbsp; EMIOS_0.CH[CH_2].CBDR.R = 0x00004E20; //&amp;nbsp; [16-31]&amp;nbsp; Channel eMIOS_0_CBDR2 Data Register - eMIOS_0_CBDR2 : Value = 20000&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;*/&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void switch_PWM_DutyCycle(uint32_t aVal) //1ms 20%/80% -&amp;gt; 1KHz&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; //CH[1]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_1].CADR.R = aVal;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_1].CBDR.R = B_VAL;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //CH[6]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_6].CADR.R = aVal;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_6].CBDR.R = B_VAL;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //CH[4]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_4].CADR.R = aVal;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_4].CBDR.R = B_VAL;&lt;/P&gt;&lt;P&gt;&amp;nbsp; //CH[5]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_5].CADR.R = aVal;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_5].CBDR.R = B_VAL;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp; //CH[2]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_2].CADR.R = aVal;&amp;nbsp; // [16-31]&amp;nbsp; Channel eMIOS_0_CADR2 Data Register - eMIOS_0_CADR2 : Value = 500&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_2].CBDR.R = B_VAL; // [16-31]&amp;nbsp; Channel eMIOS_0_CBDR2 Data Register - eMIOS_0_CBDR2 : Value = 10000*/&lt;/P&gt;&lt;P&gt;&amp;nbsp; //CH[3]&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_3].CADR.R = aVal;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; EMIOS_0.CH[CH_3].CBDR.R = B_VAL;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;void main(void) &lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; volatile int i = 0; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; InitModesAndClks();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Init_GPIO();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; eMIOS_Init();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; switch_PWM_DutyCycle(INITIAL_A_VAL);&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; /* Loop forever */&lt;/P&gt;&lt;P&gt;&amp;nbsp; for (;;) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; i++;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sw1State = SIU.GPDI[SW_1].B.PDI;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sw2State = SIU.GPDI[SW_2].B.PDI;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sw3State = SIU.GPDI[SW_3].B.PDI;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sw4State = SIU.GPDI[SW_4].B.PDI;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(sw1State){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch_PWM_DutyCycle(A_VAL1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(sw2State){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch_PWM_DutyCycle(A_VAL2);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(sw3State){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch_PWM_DutyCycle(A_VAL3);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(sw4State){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch_PWM_DutyCycle(A_VAL4);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P style="min- padding: 0px;"&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;********************************************************************************************************************************************&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-338291"&gt;eMIOS_Testing_APDaga.rar&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 31 Mar 2016 14:23:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5606B-eMIOS0-PWM-generation-Phase-lag/m-p/459885#M1592</guid>
      <dc:creator>akshaydaga</dc:creator>
      <dc:date>2016-03-31T14:23:31Z</dc:date>
    </item>
    <item>
      <title>Re: MPC5606B eMIOS0 PWM generation Phase lag?</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5606B-eMIOS0-PWM-generation-Phase-lag/m-p/459886#M1593</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;use the Global Time Base Enable bit in MCR to start channels simultaneously. &lt;/P&gt;&lt;P&gt;So clear the GTBE bit at beginning of eMIOS_Init() and set it at the end.&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;STRONG&gt; &lt;/STRONG&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;STRONG style="color: #7f0055; font-size: 10.0pt; font-family: Consolas;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt; &lt;STRONG&gt;eMIOS_Init&lt;/STRONG&gt;(&lt;/SPAN&gt;&lt;STRONG style="color: #7f0055; font-size: 10.0pt; font-family: Consolas;"&gt;void&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;) &lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #3f7f5f;"&gt;//1ms duty cycle 50%&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;{&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #3f7f5f;"&gt;/* Module : Enable&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #3f7f5f;"&gt;/* Global Freeze: Disabled&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #3f7f5f;"&gt;/* Global Time Base Enable: No&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #3f7f5f;"&gt;/* Global &lt;SPAN style="text-decoration: underline;"&gt;Prescaler&lt;/SPAN&gt; Enable: Yes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in; margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #3f7f5f;"&gt;/* Global &lt;SPAN style="text-decoration: underline;"&gt;Prescaler&lt;/SPAN&gt; Value:&amp;nbsp;&amp;nbsp; 63&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black; background: silver;"&gt;EMIOS_0&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #0000c0;"&gt;MCR&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #0000c0;"&gt;R&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt; = 0x04003F00; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-left: .5in;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #3f7f5f;"&gt;….&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt; text-indent: .5in;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;EMIOS_0.&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #0000c0;"&gt;MCR&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #0000c0;"&gt;B&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;.&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: #0000c0;"&gt;GTBE&lt;/SPAN&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt; = 1;&amp;nbsp;&amp;nbsp;&amp;nbsp; // start all channel at the same time&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;}&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR, Petr &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Apr 2016 07:57:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5606B-eMIOS0-PWM-generation-Phase-lag/m-p/459886#M1593</guid>
      <dc:creator>PetrS</dc:creator>
      <dc:date>2016-04-01T07:57:18Z</dc:date>
    </item>
    <item>
      <title>Re: MPC5606B eMIOS0 PWM generation Phase lag?</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5606B-eMIOS0-PWM-generation-Phase-lag/m-p/459887#M1594</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you sir, &lt;BR /&gt;It worked for me. and Phase lag is gone completely.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 01 Apr 2016 14:42:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5606B-eMIOS0-PWM-generation-Phase-lag/m-p/459887#M1594</guid>
      <dc:creator>akshaydaga</dc:creator>
      <dc:date>2016-04-01T14:42:37Z</dc:date>
    </item>
    <item>
      <title>Re: MPC5606B eMIOS0 PWM generation Phase lag?</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5606B-eMIOS0-PWM-generation-Phase-lag/m-p/459888#M1595</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Sir for your Suggestion. It worked for above problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But, I have taken 3 External Interrupts, In each of the Interrupt 2 of 6 PWMs are getting enabled and 4 of 6 PWMs getting Disabled. In each interrupt,2 different PWMs are getting Enabled. Now Since I have Enbled GTBE at the end of the EMIOS_Init function and then Enabling and Disabling PWMS in interrupt by setting UCDIS value .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is introducing Lag in between 2 PWMs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What is the solution for that?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 28 Apr 2016 12:26:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5606B-eMIOS0-PWM-generation-Phase-lag/m-p/459888#M1595</guid>
      <dc:creator>akshaydaga</dc:creator>
      <dc:date>2016-04-28T12:26:49Z</dc:date>
    </item>
    <item>
      <title>Re: MPC5606B eMIOS0 PWM generation Phase lag?</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5606B-eMIOS0-PWM-generation-Phase-lag/m-p/459889#M1596</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I believe that solution is the same. At each interrupt you just have to:&lt;/P&gt;&lt;P&gt;1. Stop all PWMs;&lt;/P&gt;&lt;P&gt;2. Reconfigure PWMs (configure PWMs that has not to be started in a way they will not run. This could be done either by disabling PWM in its configuration, either by changing pin mode to GPIO with correct level - 0/1);&lt;/P&gt;&lt;P&gt;3. Start all PWM thru GTBE, which will start only PWMs that has to run, but synchronously;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Apr 2016 04:49:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5606B-eMIOS0-PWM-generation-Phase-lag/m-p/459889#M1596</guid>
      <dc:creator>alexvinchev</dc:creator>
      <dc:date>2016-04-29T04:49:57Z</dc:date>
    </item>
    <item>
      <title>Re: MPC5606B eMIOS0 PWM generation Phase lag?</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5606B-eMIOS0-PWM-generation-Phase-lag/m-p/459890#M1597</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;I looks you want to control 3phase motor or something similar.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;I guess the usage of the OPWMB mode will be better for you. In this mode channel is running from common counter bus (e.g. counter bus A), so this will ensure a synchronicity on all channels. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;To disable certain channels you can just set 0% duty cycle, that’s take effect in next PWM cycle.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: Consolas; color: black;"&gt;Or you can use the OCDIS register to disable the channel. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR, Petr &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Apr 2016 08:57:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5606B-eMIOS0-PWM-generation-Phase-lag/m-p/459890#M1597</guid>
      <dc:creator>PetrS</dc:creator>
      <dc:date>2016-04-29T08:57:24Z</dc:date>
    </item>
    <item>
      <title>Re: MPC5606B eMIOS0 PWM generation Phase lag?</title>
      <link>https://community.nxp.com/t5/MPC5xxx/MPC5606B-eMIOS0-PWM-generation-Phase-lag/m-p/459891#M1598</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,Petr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think this font is not easy to read. :smileylaugh:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards!&lt;/P&gt;&lt;P&gt;Yanna&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 May 2016 13:11:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/MPC5xxx/MPC5606B-eMIOS0-PWM-generation-Phase-lag/m-p/459891#M1598</guid>
      <dc:creator>yanna</dc:creator>
      <dc:date>2016-05-03T13:11:15Z</dc:date>
    </item>
  </channel>
</rss>

