diff --git a/ips/main.c b/ips/main.c
index a63b1cc803a1821401a1313efe701c46032de6c1..37d5ca90ecfd038216acf6ec90851ad05ed61ee5 100644
--- a/ips/main.c
+++ b/ips/main.c
@@ -64,6 +64,15 @@
 #include "GUI_DEV/GUI_Paint.h"
 #include "Fonts/fonts.h"
 #include "image/image.h"
+#include "tmr.h"
+
+// Parameters for PWM output
+#define PORT_PWM   PORT_0  // port
+#define PIN_PWM    PIN_7   // pin
+#define FREQ       200 // (Hz) 
+//#define DUTY_CYCLE 75  // (%)  
+#define DUTY_CYCLE 20  // (%)  
+#define PWM_TIMER  MXC_TMR1  // must change PORT_PWM and PIN_PWM if changed
 
 
 /***** Definitions *****/
@@ -79,6 +88,56 @@ const gpio_cfg_t DEV_RST_PIN = {PORT_1, PIN_6, GPIO_FUNC_OUT, GPIO_PAD_NONE};
 const gpio_cfg_t DEV_DC_PIN = {PORT_1, PIN_7, GPIO_FUNC_OUT, GPIO_PAD_NONE};
 
 /***** Functions *****/
+void PWM_Output()
+{
+    // Declare variables
+    gpio_cfg_t gpio_pwm;    // to configure GPIO
+    tmr_cfg_t tmr;          // to congigure timer
+    tmr_pwm_cfg_t tmr_pwm;  // for configure PWM
+    unsigned int period_ticks = PeripheralClock / FREQ;
+    unsigned int duty_ticks = period_ticks * DUTY_CYCLE / 100;
+    
+    // Congfigure GPIO port and pin for PWM
+    gpio_pwm.func = GPIO_FUNC_ALT4;
+    gpio_pwm.port = PORT_PWM;
+    gpio_pwm.mask = PIN_PWM; 
+    gpio_pwm.pad = GPIO_PAD_PULL_DOWN;
+    
+    if (GPIO_Config(&gpio_pwm) != E_NO_ERROR) {
+        printf("Failed GPIO_Config for pwm.\n");
+    }
+
+    /*    
+    Steps for configuring a timer for PWM mode:
+    1. Disable the timer
+    2. Set the prescale value
+    3. Configure the timer for PWM mode
+    4. Set polarity, pwm parameters
+    5. Enable Timer
+    */
+
+    TMR_Disable(PWM_TIMER); 
+    
+    TMR_Init(PWM_TIMER, TMR_PRES_1, 0);
+    
+    tmr.mode = TMR_MODE_PWM;
+    tmr.cmp_cnt = period_ticks;
+    tmr.pol = 0;
+    TMR_Config(PWM_TIMER, &tmr);
+    
+    tmr_pwm.pol = 1;
+    tmr_pwm.per_cnt = period_ticks;
+    tmr_pwm.duty_cnt = duty_ticks;
+    
+    if (TMR_PWMConfig(PWM_TIMER, &tmr_pwm) != E_NO_ERROR) {
+        printf("Failed TMR_PWMConfig.\n");
+    }
+    
+    TMR_Enable(PWM_TIMER);
+
+    printf("PWM started.\n");
+}
+
 
 // *****************************************************************************
 int main(void)
@@ -118,12 +177,13 @@ int main(void)
     GPIO_Config(&DEV_RST_PIN);
     GPIO_Config(&DEV_DC_PIN);
 
+    PWM_Output();
     LCD_SetBacklight(500);
     LCD_Init();
     LCD_Clear(BLACK);
 
     Paint_NewImage(LCD_WIDTH, LCD_HEIGHT,0,WHITE);
-    Paint_Clear(WHITE);
+    Paint_Clear(BLACK);
     //Paint_SetRotate(180);
     Paint_DrawString_EN(0, 0, "123", &Font24, 0x000f, 0xfff0);
     Paint_DrawString_EN(0, 23, "ABC", &Font24, BLUE, CYAN);
@@ -134,7 +194,7 @@ int main(void)
     Paint_DrawCircle(85,25, 22, GREEN, DRAW_FILL_EMPTY, DOT_PIXEL_2X2);
 
     Paint_DrawImage(gImage_40X40,120, 0,40, 40);
-    DEV_Delay_ms(2000);
+    DEV_Delay_ms(10000);
     Paint_DrawImage(gImage_160X80,0, 0, 160, 80);
 
     while (1) {