OSDN Git Service

[UI][UPDOWN][V2.0] Fix previos bug of v1.0, same as v2.0.
authorK.Ohta <whatisthis.sowhat@gmail.com>
Tue, 24 Sep 2013 02:43:24 +0000 (11:43 +0900)
committerK.Ohta <whatisthis.sowhat@gmail.com>
Tue, 24 Sep 2013 02:43:24 +0000 (11:43 +0900)
akc6955.c
akc6955.h
ui_updown.c

index 5a9687a..52e99c9 100644 (file)
--- a/akc6955.c
+++ b/akc6955.c
@@ -247,6 +247,14 @@ void akc6955_set_scanrate_fm(unsigned char rate)
     akc6955_writecmd(AKC6955_SPACE, c);
 }
 
+unsigned char akc6955_get_scanrate_fm(void)
+{
+    unsigned char c;
+    c = akc6955_readcmd(AKC6955_SPACE);
+    c = (c & 0x30) >> 4;
+   return c;
+}
+
 unsigned char akc6955_chk_donescan(void)
 {
     __bitops_t b;
index 17b9752..feb81af 100644 (file)
--- a/akc6955.h
+++ b/akc6955.h
@@ -201,6 +201,7 @@ extern void akc6955_setline(unsigned char flag);
 extern void akc6955_set_stereomode(unsigned char mode);
 extern unsigned char akc6955_get_stereo(void);
 extern void akc6955_set_scanrate_fm(unsigned char rate);
+extern unsigned char akc6955_get_scanrate_fm(void);
 extern unsigned int akc6955_get_battery(void);
 extern void akc6955_set_lowboost(unsigned char flag);
 extern void akc6955_set_thresh_fmstereo(unsigned char a);
index de4c682..42c67f2 100644 (file)
@@ -88,7 +88,7 @@ static void setband_updown(unsigned char updown)
         setup.amfreq_bank[setup.amband] = setup.amfreq;
         if(updown == 0) { // down
             if(band <= 1) {
-                band = AKC6955_BAND_AMEND - 1;
+                band = AKC6955_BAND_AMEND + 1;
             }
             band -= 2;
         }
@@ -141,7 +141,6 @@ void setfreq_updown(unsigned char ctlword)
 
     backlight_reset(ctlword);
 
-
     update_status();
     switch(ctlword){
         case charcode_8: // Up band
@@ -150,6 +149,7 @@ void setfreq_updown(unsigned char ctlword)
         case charcode_2: // Down band
             setband_updown(0x00);
             break;
+        case charcode_6: // Up Fast;
         case charcode_4: // Down Freq;
             freq = 9; // 27KHz@3K/9KStep.
             if(setup.fm != 0) {
@@ -157,26 +157,13 @@ void setfreq_updown(unsigned char ctlword)
             } else if(setup.am_mode3k == 0){
                 freq = 6; // 30KHz
             }
-            akc6955_down_freq(freq);
-            break;
-        case charcode_6: // Down Freq;
-            freq = 9; // 27KHz@3K/9KStep.
-            if(setup.fm != 0) {
-                freq = 10; // 250KHz
-            } else if(setup.am_mode3k == 0){
-                freq = 6; // 30KHz
-            }
-            akc6955_up_freq(freq); // 225 or 27 or 45KHz
-            break;
-        case charcode_9: // Down Fast;
-            freq = 33; // 99KHz@3K/9KStep.
-            if(setup.fm != 0){
-                freq = 40; // 1MHz
-            } else if(setup.am_mode3k == 0){
-                freq = 20; // 100KHz
-            }
-            akc6955_up_freq(freq); // 825 or 90 or 165KHz
+            if(ctlword == charcode_6) {
+              akc6955_up_freq(freq); // 225 or 27 or 45KHz
+           } else {
+              akc6955_down_freq(freq); // 225 or 27 or 45KHz
+           }
             break;
+        case charcode_9: // Up Fast;
         case charcode_7: // Down Fast;
             freq = 33; // 99KHz@3K/9KStep.
             if(setup.fm != 0){
@@ -184,29 +171,31 @@ void setfreq_updown(unsigned char ctlword)
             } else if(setup.am_mode3k == 0){
                 freq = 20; // 100KHz
             }
-            akc6955_down_freq(freq); // 825 or 90 or 165KHz
-            break;
-        case charcode_1: // Down Slow;
-            if(setup.fm != 0){
-                freq = 4; // DOWN 100KHz
-            } else {
-                freq = 1; // 5KHz or 3KHz
-                if(setup.amband == AKC6955_BAND_MW2) {
-                    freq = 3; // 9KHz
-                }
-            }
-            akc6955_down_freq(freq);
+            if(ctlword == charcode_9) {
+              akc6955_up_freq(freq); // 825 or 90 or 165KHz
+           } else {
+              akc6955_down_freq(freq); // 825 or 90 or 165KHz
+           }
             break;
         case charcode_3: // Up Slow;
+        case charcode_1: // Down Slow;
             if(setup.fm != 0){
                 freq = 4; // DOWN 100KHz
             } else {
                 freq = 1; // 5KHz or 3KHz
                 if(setup.amband == AKC6955_BAND_MW2) {
                     freq = 3; // 9KHz
+                } else if(setup.amband == AKC6955_BAND_MW3) {
+                    freq = 2; // 10KHz
+                } else if(setup.amband == AKC6955_BAND_MW4) {
+                    freq = 2; // 10KHz
                 }
-            }
-            akc6955_up_freq(freq);
+           }
+            if(ctlword == charcode_1) {
+              akc6955_down_freq(freq);
+           } else {
+              akc6955_up_freq(freq);
+           }
             break;
         case charcode_0: // Step
             setup.threshold_width++;