OSDN Git Service

[v2.0] Build with PIC18F46K20(64K), as of capacity of FLASH.
[openi2cradio/OpenI2CRadio.git] / ui_display.c
index e636ea1..3922323 100644 (file)
@@ -35,7 +35,6 @@
 #include <pic18fregs.h> /* ONLY FOR PIC18x */
 #include <delay.h>
 #endif
-#include <signal.h>
 
 #include "commondef.h"
 #include "iodef.h"
 void print_freq(unsigned char y)
 {
     int freq;
-    int freq_lo;
-    int freq_hi;
-    _LOCATE(0,y);
-    if(fm != 0){ // FM
-        if(fmband < AKC6955_BAND_TV1) {
+    unsigned char band;
+    unsigned char cc;
+//    _HOME();
+    _LOCATE(0, y);
+    if(setup.fm != 0){ // FM
+        band = setup.fmband;
+        if(band < AKC6955_BAND_TV1) {
             printstr("FM");
-            _PUTCHAR('1' + (fmband & 7));
-            printstr("  ");
-        } else if(fmband < AKC6955_BAND_FMUSER){
+            _PUTCHAR('1' + (band & 7));
+            _PUTCHAR(' ');
+        } else if(band < AKC6955_BAND_FMUSER){
             printstr("TV");
-            _PUTCHAR('1' + fmband - AKC6955_BAND_TV1);
-            printstr("  ");
+            _PUTCHAR('1' + band - AKC6955_BAND_TV1);
+            _PUTCHAR(' ');
         } else { // USER
             printstr("FMU");
-            _PUTCHAR('0' + fm_userbandnum);
-            _PUTCHAR(' ');
+            _PUTCHAR('0' + setup.fm_userbandnum);
         }
+        printstr("  ");
+         if(stereoflag != 0){
+             cc = 'S';
+         } else {
+             cc = ' ';
+         }
+         _PUTCHAR(cc);
+         freq = setup.fmfreq;// + diffstat / 100;
+         print_numeric_nosupress(freq / 100, 3);
+         _PUTCHAR('.');
+         print_numeric_nosupress(freq % 100, 2);
+         printstr("MHz");
     } else { // AM
-        if(amband == AKC6955_BAND_LW) {
-            printstr("LW");
-        } else if(amband <AKC6955_BAND_SW1) { //MW
+        band = setup.amband;
+        if(band == AKC6955_BAND_LW) {
+            printstr("LW  ");
+        } else if(band <AKC6955_BAND_SW1) { //MW
             printstr("MW");
-            _PUTCHAR('1' + amband - AKC6955_BAND_MW1);
-            printstr("  ");
-        } else if(amband <AKC6955_BAND_SW10) { //MW
-            printstr("SW");
-            _PUTCHAR('1' + amband - AKC6955_BAND_SW1);
-            printstr("  ");
-        } else if(amband < AKC6955_BAND_AMUSER) { //MW
-            printstr("SW1");
-            _PUTCHAR('0' + amband - AKC6955_BAND_SW10);
+            _PUTCHAR('1' + band - AKC6955_BAND_MW1);
             _PUTCHAR(' ');
-        } else if(amband == AKC6955_BAND_MW4){
-            printstr("MW4  ");
+        } else if(band < AKC6955_BAND_AMUSER)  { //SW
+            printstr("SW");
+            print_numeric_nosupress(band - AKC6955_BAND_SW1 + 1, 2);
+        } else if(band == AKC6955_BAND_MW4){
+            printstr("MW4 ");
         } else {
             printstr("AMU");
-            _PUTCHAR('0' + am_userbandnum);
-            _PUTCHAR(' ');
+            _PUTCHAR('0' + setup.am_userbandnum);
         }
-     }
-//     _LOCATE(15-5 ,1);
-     _LOCATE(16-3-8, y);
-     if(fm != 0){
-         if(stereoflag != 0){
-             printstr("ST");
-         } else {
-             printstr("  ");
-         }
-         freq = fmfreq;// + diffstat / 100;
-         freq_lo = freq % 100;
-         freq_hi = freq / 100;
-         print_numeric_nosupress(freq_hi, 3);
-         _PUTCHAR('.');
-         print_numeric_nosupress(freq_lo, 2);
-     } else {
-         freq = amfreq;// + diffstat / 10;
-         printstr("   ");
+         freq = setup.amfreq;// + diffstat / 10;
+         printstr("    ");
          print_numeric_nosupress(freq, 5);
-     }
-     // Signal
-     _LOCATE(16-3, y);
-     if(fm != 0){
-         printstr("MHz");
-     } else {
          printstr("KHz");
      }
+     _HOME();
 }
 
 void update_display(void)
 {
 
     unsigned int vol;
-    int lv;
-//    _HOME();
-    _LOCATE(0,0);
+    int sig;
+
+ //   _CLS();
+    _LOCATE_0_0();
     printstr("S");
-    if(recv_signal < 0){
-        _PUTCHAR('-');
-        lv = - recv_signal;
-        print_numeric_nosupress(lv / 20, 1);
+    if(recv_signal > 99){
+        _PUTCHAR('+');
     } else {
-        lv = recv_signal;
-        print_numeric_nosupress(lv / 20, 1); // MAX=123
-        _PUTCHAR(' ');
+        _PUTCHAR('0' + recv_signal / 10);
     }
-    if(fm == 0){
-        set_amlamp(1);
-        set_fmlamp(0);
+    _PUTCHAR('/');
+    if(cnrlevel >= 40) {
+        _PUTCHAR('+');
     } else {
-        set_amlamp(0);
-        set_fmlamp(1);
+        _PUTCHAR('0' + cnrlevel / 4);
     }
+    _PUTCHAR(' ');
+    set_amfmlamp(~setup.fm);
+    _PUTCHAR('W');
+//    print_numeric_nosupress((setup.threshold_width & 3) * 10 + (setup.fm_tunepitch & 3), 2);
+    print_numeric_nosupress(setup.threshold_width * 10 + setup.fm_tunepitch, 2);
      // vol = volume * 1.5 + prevolume * 3.5[dB]
+#if 0
      if(volume > 24) {
          vol = volume - 24;
          vol = (vol * 3 + prevolume * 7) / 2;
@@ -155,13 +143,11 @@ void update_display(void)
      } else {
          printstr("MUTE");
      }
-
-     _LOCATE(16-5,0);
+#endif
+     _LOCATE(16-5, 0);
      print_numeric_nosupress(battlevel / 100, 1);
      _PUTCHAR('.');
      print_numeric_nosupress(battlevel % 100, 2);
      _PUTCHAR('V');
      print_freq(1);
-//    _PUTCHAR(' ');
-    _HOME();
 }