About the author


    can you please help me how to pass the value into the EEPROM using i2c protocol in lpc2148

    • will try to cover this in I2C tutorial. Frankly I need to try it first before I can help you.. lets see if I can post it soon .. since at the moment I am almost finished with sine PWM using lpc214x.

  • sunil

    nice explanation on pwm

  • sunil shetty

    I want to learn gaming ..please guide me ..

  • Ved

    Very easy explanation. Keep up the good work!.

    So, easy to understand compared to LPC2148 official manual.

  • Yaswanth

    so we can operate 6 servos max with the lpc214X!(?).
    in your other tutorial on hexpod u mentioned that we can operate max 32(64 too) .then your using special controller(to control servos) controlled by microcontroller(lpc2148?) am i right ?
    can you give me few more details on that special controller?

  • Pooja

    Good job.I am beginner in Arm , i was not getting anything from datasheet .When i saw your website ,i understand each n everything .You explained so nicely.Its helpful one .Please post more on arm.

    • Hi Pooja , really Glad to see that you and others found it helpful. More stuff on ARM will come in future. 😀

  • PNU

    i want to generate variable frequency PWM with constant V/F ratio.. can you please help in doing that with this processor.

  • Gopi M


    i studied the whole tutorial and execute the code give. it’s perfectly working. thanks a lot for your tutorial.

    i just modify the program slightly to show the out put little bit more understandable.

    if( !((IO0PIN) & (1<<1)) ) // Check P0.1
    PWMMR1 = 2500; //T-ON=25% , Hence 25% Bright
    PWMLER = (1<<1); //Update Latch Enable bit for PWMMR1
    else if( !((IO0PIN) & (1<<2)) ) // Check P0.2
    PWMMR1 = 5000; //50% Bright
    PWMLER = (1<<1);
    else if( !((IO0PIN) & (1<<3)) ) // Check P0.3
    PWMMR1 = 7500; //75% Bright
    PWMLER = (1<<1);
    else if( !((IO0PIN) & (1<<4)) ) // Check P0.4
    PWMMR1 = 10000; //100% Bright
    PWMLER = (1<<1);

    i just replace the above code segment by the code given below.


    PWMMR1 = i;
    PWMLER = (1<=0;i–)

    PWMMR1 = i;
    PWMLER = (1<<1);


    in this code i continuously modify the duty cycle value ie., match register value from (0 to 10000) and from (10000 to 0)

    by doing this type of changes the light intensity of led continuously change from DIM to bright and form bright to dim

    without switch we can easily see the output through led changing gradually from dim to bright and bright to dim.

    all that we need to do is just connect a anode of led to pin 0.0 and ground the cathode pin.

  • Abhay

    hi sir,
    i am trying to modify PWM pins but it is not updating new values ..and is it possible to use timers with PWM ?please help me

  • Neethu

    Hi, how to set PWM1PR value to nano seconds resolution. I have to generate 4MHz signal .