OSDN Git Service

[General] Add _LCD_DEBUG flag, without initialize AKC695x.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Wed, 12 Jun 2013 13:00:15 +0000 (22:00 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Wed, 12 Jun 2013 13:00:15 +0000 (22:00 +0900)
akc6955.h
main.c

index 6b587e7..5ab2436 100644 (file)
--- a/akc6955.h
+++ b/akc6955.h
@@ -127,6 +127,8 @@ extern "C" {
 #define _AKC6955_WAIT_62_5MS()     delay1ktcy(500)
 // Wait 12.5ms
 #define _AKC6955_WAIT_12_5MS()     delay1ktcy(100)
+// Wait 125.0ms
+#define _AKC6955_WAIT_125_0MS()     delay10ktcy(100)
 // Wait 50us
 #define _AKC6955_WAIT_12_5uS()     delay10tcy(40)
 
diff --git a/main.c b/main.c
index d66754f..072b018 100644 (file)
--- a/main.c
+++ b/main.c
@@ -68,6 +68,7 @@
 #pragma config EBTR0=OFF,EBTR1=OFF,EBTR2=OFF,EBTR3=OFF,EBTRB=OFF
 #endif
 
+#define _LCD_DEBUG 1
 
 SIGHANDLER(TMR0_handler)
 {
@@ -106,6 +107,8 @@ unsigned char am_userbandnum;
 unsigned char fm_userbandnum;
 
 int recv_signal;
+int backlight_counter;
+unsigned char backlight_level;
 
 typedef struct {
     unsigned char start;
@@ -116,7 +119,26 @@ _userband_t am_usrbands[4];
 _userband_t fm_usrbands[4];
 
 
-static void update_display(void)
+void toggle_amfm(void)
+{
+    if(fm != 0){
+        fm = 0;
+#ifndef _LCD_DEBUG
+        akc6955_chg_fm(fm);
+        akc6955_set_amband(amband);
+        akc6955_set_freq(amfreq);
+#endif
+    } else {
+        fm = 0xff;
+#ifndef _LCD_DEBUG
+        akc6955_chg_fm(fm);
+        akc6955_set_fmband(fmband);
+        akc6955_set_freq(fmfreq);
+#endif
+    }
+}
+
+void update_display(void)
 {
     if(fm != 0){ // FM
         _LOCATE(0,0);
@@ -169,8 +191,9 @@ static void update_display(void)
 }
 
 
-static void setfreq_updown(unsigned char ctlword)
+void setfreq_updown(unsigned char ctlword)
 {
+#ifndef _LCD_DEBUG
     switch(ctlword){
         case charcode_8: // Change band
             if(fm != 0){
@@ -178,7 +201,7 @@ static void setfreq_updown(unsigned char ctlword)
                 if(amband > 18) amband = 0;
 //                amfreq = akc6955_setfreq(amfreq)
                 akc6955_set_amband(amband);
-                delay1ktcy(500); // 62.5ms
+                _AKC6955_WAIT_62_5MS(); // 62.5ms
                 amband = akc6955_get_amband();
                 amfreq = akc6955_get_freq();
             } else {
@@ -186,7 +209,7 @@ static void setfreq_updown(unsigned char ctlword)
                 if(fmband > 7) fmband = 0;
 //                amfreq = akc6955_setfreq(amfreq)
                 akc6955_set_fmband(fmband);
-                delay1ktcy(500); // 62.5ms
+                _AKC6955_WAIT_62_5MS(); // 62.5ms
                 fmband = akc6955_get_fmband();
                 fmfreq = akc6955_get_freq();
             }
@@ -198,7 +221,7 @@ static void setfreq_updown(unsigned char ctlword)
                 if(amband >= 18) amband = 18;
 //                amfreq = akc6955_setfreq(amfreq)
                 akc6955_set_amband(amband);
-                delay1ktcy(500); // 62.5ms
+                _AKC6955_WAIT_62_5MS(); // 62.5ms
                 amband = akc6955_get_amband();
                 amfreq = akc6955_get_freq();
             } else {
@@ -207,7 +230,7 @@ static void setfreq_updown(unsigned char ctlword)
                 if(fmband >= 7) fmband = 7;
 //                amfreq = akc6955_setfreq(amfreq)
                 akc6955_set_fmband(fmband);
-                delay1ktcy(500); // 62.5ms
+                _AKC6955_WAIT_62_5MS(); // 62.5ms
                 fmband = akc6955_get_fmband();
                 fmfreq = akc6955_get_freq();
             }
@@ -267,6 +290,7 @@ static void setfreq_updown(unsigned char ctlword)
         default:
             break;
     }
+#endif
 }
 /*
  * 
@@ -276,18 +300,25 @@ int main(void)
     char readchar;
     unsigned char input_flag;
     char i;
-
+#ifdef _LCD_DEBUG
+    unsigned char power_flag;
+#endif
     keyin_init();
     keyin_ioinit();
     idle_init();
 
     i2c1_init();
 
-    delay1ktcy(1000); // Wait 125ms
-
+    _AKC6955_WAIT_125_0MS(); // Wait 125ms
+#ifdef _LCD_DEBUG
+    power_flag = 0xff;
+#endif
+    backlight_counter = 128;
+    backlight_level = 255;
     acm1602_init(0xa0, 1); //Init LCD
-
-    delay1ktcy(1000); // Wait 125ms
+//    _AKC6955_WAIT_125_0MS(); // Wait 125ms
+    _LOCATE(0,0);
+    printstr("Hello;-)");
 
     
     // Init AKC6955
@@ -311,12 +342,19 @@ int main(void)
 
     /* Check EEPROM */
     /* Push default parameters to AKC6955*/
-    
+
+#ifndef _LCD_DEBUG
     akc6955_chg_fm(fm); // Set to AM
     akc6955_set_amband(amband);
     akc6955_set_freq(amfreq); // Dummy, TBS (954KHz)
     akc6955_set_power(0xff); // Power ON
+#endif
+
+#ifdef _LCD_DEBUG
+    idle(0xf000);
+#else
     idle(0xff00);
+#endif
     do {
         /* Main routine*/
         input_flag = readkey_compare();
@@ -326,20 +364,11 @@ int main(void)
                 // Top of input-tree.
                 case charcode_s0:
                     // Change FM/AM
-                    if(fm != 0){
-                        fm = 0;
-                        akc6955_chg_fm(fm);
-                        akc6955_set_amband(amband);
-                        akc6955_set_freq(amfreq);
-                    } else {
-                        fm = 0xff;
-                        akc6955_chg_fm(fm);
-                        akc6955_set_fmband(fmband);
-                        akc6955_set_freq(fmfreq);
-                    }
+                    toggle_amfm();
                     break;
                 case charcode_s1:
-                    // 
+                    //
+                    backlight_counter = 128;
                     break;
                 case charcode_s2:
                     // ENTER
@@ -355,18 +384,34 @@ int main(void)
                     break;
             }
         }
+#ifndef _LCD_DEBUG
         recv_signal = akc6955_read_level();
         if(fm != 0){
             fmfreq = akc6955_get_freq();
         } else {
             amfreq = akc6955_get_freq();
         }
+#endif
         // Check battery (include idle?)
         // Read AKJC6955's status
         // Putstring to LCD.
+
         update_display();
+        if(backlight_counter > 0) {
+            backlight_counter--;
+            set_backlight(0xff, backlight_level); // Turn ON
+        } else {
+            set_backlight(0x00, 0); // Turn OFF
+        }
+#ifdef _LCD_DEBUG
+        if(power_flag != 0x00) {
+            power_flag = 0x00;
+        } else {
+            power_flag = 0xff;
+        }
+        setsignal_tune(power_flag);
+#endif
         idle(0xf800);
     } while(1);
-
 }