OSDN Git Service

[Schematic][PREAMP] Change 2SC3110 to 2SK241 for MW/LW Amp.
[openi2cradio/OpenI2CRadio.git] / backlight.c
index 496e67f..cefcbd2 100644 (file)
 #include "power.h"
 
 int backlight_counter;
-
+unsigned char l_backlight_level;
 
 void lcd_setbacklight(unsigned char flag, unsigned char level)
 {
     __bitops_t  b;
     __bitops_t d;
-#if 0
-    d.byte = _LCD_BACKLIGHT_TRIS;
-    d._LCD_BACKLIGHT_BIT = 0;
-   _LCD_BACKLIGHT_TRIS = d.byte;
-
-    b.byte = _LCD_BACKLIGHT;
-    b._LCD_BACKLIGHT_BIT = 0;
-    if(flag != 0){
-       b._LCD_BACKLIGHT_BIT = 1;
-    }
-    _LCD_BACKLIGHT = b.byte;
-#else
-    if(flag == 0) {
+   l_backlight_level = level;
+   if(flag == 0) {
         d.byte = _LCD_BACKLIGHT_TRIS;
         d._LCD_BACKLIGHT_BIT = 1;
         _LCD_BACKLIGHT_TRIS = d.byte;
@@ -61,10 +50,6 @@ void lcd_setbacklight(unsigned char flag, unsigned char level)
         CCPR2H = 0;
     } else {
       unsigned char h,l;
-//      lv = level;
-//      lv <<= 2;
-//      level = (level * 25) / 10;
-//      level = 255;
       h = level >> 1;
       if(h == CCPR1L) return;
  //     l = 2 << 4; //(lv & 0x0300) >> 4;
@@ -84,15 +69,14 @@ void lcd_setbacklight(unsigned char flag, unsigned char level)
       TMR2 = 0x00;
       T2CONbits.TMR2ON = 1;
       do {
-          idle_time_ms(1);
-      } while(PIR1bits.TMR2IF ==0);
+          idle_time_ms(2); // 
+      } while(PIR1bits.TMR2IF == 0);
       d.byte = _LCD_BACKLIGHT_TRIS;
       d._LCD_BACKLIGHT_BIT = 0;
       _LCD_BACKLIGHT_TRIS = d.byte;
 
 //      _LCD_PORT |= _LCD_BACKLIGHT;
     }
-#endif
 }
 
 void backlight_reset(unsigned char ctlword)
@@ -100,8 +84,10 @@ void backlight_reset(unsigned char ctlword)
     if(ctlword == charcode_e){
         if(backlight_counter != 0){
            backlight_counter = 0;
+           lcd_setbacklight(0x00, 0); // Turn OFF
         } else {
            backlight_counter = setup.backlight_long;
+           lcd_setbacklight(0xff, setup.backlight_level); // Turn ON
         }
         return;
     }
@@ -119,15 +105,17 @@ unsigned char backlight_dec(unsigned char dispf)
 
     pbutton = chk_powerbutton(); // 48ms
     if(pbutton != 0) shutdown(1); // Button pressed.
+    ClrWdt();
 
        if(backlight_counter > 0) {
           if(dispf == 0) {
               acm1602_resume(LCD_I2CADDR);
                stat = 0xff;
-           }
+              lcd_setbacklight(0xff, setup.backlight_level);
+         }
 
            backlight_counter--;
-           lcd_setbacklight(0xff, setup.backlight_level); // Turn ON
+           //lcd_setbacklight(0xff, setup.backlight_level); // Turn ON
        } else {
            lcd_setbacklight(0x00, 0); // Turn OFF
            acm1602_suspend(LCD_I2CADDR);