OSDN Git Service

[Build] Build with XC8 v1.21.
[openi2cradio/OpenI2CRadio.git] / ioports.c
index 5005b4c..1301222 100644 (file)
--- a/ioports.c
+++ b/ioports.c
  *  This exception does not however invalidate any other reasons why
  *  the executable file might be covered by the GNU General Public License.
  */
-
+#include "commondef.h"
 #include "ioports.h"
 #include <signal.h>
 
 unsigned char statecount;
 
-void set_amlamp(unsigned char f)
+void set_amfmlamp(unsigned char f)
 {
     if(f == 0x00) {
         _AM_STATLAMP = 0;
+        _FM_STATLAMP = 1;
     } else {
         _AM_STATLAMP = 1;
+        _FM_STATLAMP = 0;
     }
 }
 
-void set_fmlamp(unsigned char f)
+
+void set_examp_mute(unsigned char f)
 {
     if(f == 0x00) {
-        _FM_STATLAMP = 0;
+        _PORT_MUTE = 1; // 20130709 Not Mute
     } else {
-        _FM_STATLAMP = 1;
+        _PORT_MUTE = 0;
     }
+    idle_time_ms(200);
 }
 
-
-void set_powerlamp(unsigned char f)
+void set_radiopower(unsigned char f)
 {
     if(f == 0x00) {
-        _POW_STATLAMP = 0;
+        _PORT_RADIOPOW = 0; // OFF
     } else {
-        _POW_STATLAMP = 1;
+        _PORT_RADIOPOW = 1; // ON
     }
 }
 
-void lcd_setbacklight(unsigned char flag, unsigned char level)
+void set_powerlamp(unsigned char f)
 {
-    unsigned char b;
-#if 1
-    b = _LCD_PORT;
-    if(flag == 0){
-        b &= ~_LCD_BACKLIGHT;
-    } else {
-        b |= _LCD_BACKLIGHT;
-    }
-    _LCD_PORT = b;
-#else
-    if(flag == 0) {
-        T2CONbits.TMR2ON = 0;
-        TMR2 = 0x00;
-        CCP1CON &= 0x00;
-        CCPR1L = 0;
+    if(f == 0x00) {
+        _POW_STATLAMP = 0;
     } else {
-      unsigned char h,l;
-      unsigned char b;
-      if(level > 100) level = 100;
-      h = (level & 0xfc) >> 2;
-      l = (level & 0x03) << 4;
-      b = CCP1CON & 0x0c;
-      b = b | 0x0c | l;
-      CCPR1L = h;
-      TMR2 = 0x00;
-      CCPR1L = h;
-       T2CONbits.TMR2ON = 1;
-//      _LCD_PORT |= _LCD_BACKLIGHT;
+        _POW_STATLAMP = 1;
     }
-#endif
 }
 
+
 void TMR3_set(void)
 {
     TMR3L = 1000 & 0xff;
@@ -114,25 +93,11 @@ void io_intcountinit(void)
     TMR3_set();
 }
 
-void lcd_backlightinit(void)
-{
-#if 0
-    PSTRCON = 0b00000001; // P1A = PWM, P1B~P1D=PORT, Steeling sync to PWM.
-    CCP1CON = 0b00001100; // PWM, Low-Active.
-    ECCP1AS = 0b10000111; // Auto shutdown is disabled
-    // Use TMR2 as source.
-    PIE1   &= ~0b00000010; // TMR2 Interrupt disabled.
-    PIR1   &= ~0b00000010; // TMR2 Interrupt clear.
-    IPR1   &= ~0b00000010; // Priority = LOW
-    T2CON   = 0b00000011; // Prescaler/Postscaler = 1:1, Temporally disabled TMR2.
-    TMR2 = 0x00; // Value;
-    PR2 = 0x65; // 19.61KHz
-    CCPR1L = 100; // Duty = 100;
-#endif
-}
 
 
-#if defined(pic18f23k22) || defined(pic18f24k22) || defined(pic18f25k22) || defined(pic18f26k22)
+#if defined(pic18f23k22) || defined(pic18f24k22) || defined(pic18f25k22) || defined(pic18f26k22) || \
+    defined(_18F23K22)  || defined(_18F24K22)  || defined(_18F25K22)  || defined(_18F26K22)
+
 /*
  * For 28Pin PIC(18F2xK22), I2C lcd using.
  */
@@ -154,12 +119,14 @@ void keyin_ioinit(void)
     LATC = 0x00;
     ANSELC = AN_C_VAL;
     TRISC = TRIS_C_VAL_O;
-    lcd_backlightinit();
-    io_intcountinit();
//   lcd_backlightinit();
+//    io_intcountinit();
 }
 #endif
 
-#if defined(pic18f23k20) || defined(pic18f24k20) || defined(pic18f25k20) || defined(pic18f26k20)
+#if defined(pic18f23k20) || defined(pic18f24k20) || defined(pic18f25k20) || defined(pic18f26k20) || \
+    defined(_18F23K20)  || defined(_18F24K20)  || defined(_18F25K20)  || defined(_18F26K20)
+
 /*
  * For 28Pin PIC(18F2xK20), I2C lcd using.
  */
@@ -180,12 +147,14 @@ void keyin_ioinit(void)
     PORTC = 0x00;
     LATC = 0x00;
     TRISC = TRIS_C_VAL_O;
-    lcd_backlightinit();
+//    lcd_backlightinit();
     io_intcountinit();
 }
 #endif
 
-#if defined(pic18f43k20) || defined(pic18f44k20) || defined(pic18f45k20) || defined(pic18f46k20)
+#if defined(pic18f43k20) || defined(pic18f44k20) || defined(pic18f45k20) || defined(pic18f46k20) || \
+    defined(_18F43K20)  || defined(_18F44K20)  || defined(_18F45K20)  || defined(_18F46K20)
+
 /*
  * For 40Pin PIC(18F4xK20), paralell or I2C lcd using.
  */
@@ -194,7 +163,7 @@ void keyin_ioinit(void)
     /* Initialize IOPORTS*/
     PORTA = 0x00;
     LATA = 0x00;
-    ANSEL = 0x00; // Use RA0 AS ADC, Another is not used.
+    ANSEL = 0x80; // Use RA7 AS ADC, Another is not used.
     ANSELH = 0x00; //
     TRISA = TRIS_A_VAL;
 
@@ -213,8 +182,10 @@ void keyin_ioinit(void)
     LATD = 0x00;
     TRISD = TRIS_D_VAL;
 
-    PORTE = 0x00;
     TRISE = TRIS_E_VAL;
+    PORTE = 0b00000000; // Mute OK
+
+    // Interrupts
     INTCONbits.INT0IE = 0;
     INTCONbits.INT0IF = 0;
     INTCON3bits.INT1IF = 0;
@@ -222,7 +193,7 @@ void keyin_ioinit(void)
     INTCON3bits.INT1IE = 0;
     INTCON3bits.INT2IE = 0;
 
-    lcd_backlightinit();
+//    lcd_backlightinit();
     io_intcountinit();
 }
 #else
@@ -242,7 +213,7 @@ void keyin_ioinit(void)
     PORTC = 0x00;
     LATC = 0x00;
     TRISC = TRIS_C_VAL_O;
-    lcd_backlightinit();
+//    lcd_backlightinit();
     io_intcountinit();
 }
 #endif
@@ -253,9 +224,8 @@ void keyin_ioinit(void)
 void readkey_io(unsigned char state)
 {
     char i;
-    unsigned char portvar;
-    unsigned char latchvar;
-
+    __bitops_t portvar;
     switch(state) {
         case 0:
             for(i = 0; i < 2; i++){
@@ -263,134 +233,83 @@ void readkey_io(unsigned char state)
                 keyin_old[0].byte[i] = keyin_now.byte[i];
                 keyin_now.byte[i] = 0x00;
             }
-            latchvar = _KEY_SENDPORT;
-            latchvar |= _KEY_SENDPORTMASK;
-            _KEY_SENDPORT = latchvar; // Group1 DOWN.
+            _KEY_SENDPORT |= _KEY_SENDPORTMASK; // Group1 DOWN.
             break;
         case 1:
-            latchvar = _KEY_SENDPORT;
-            latchvar &= ~_KEY_GRP1MASK;
-            _KEY_SENDPORT = latchvar; // Group1 DOWN.
+            _KEY_SEND_GRP1 = 0; // Group1 DOWN.
             break;
         case 2:
-            portvar = _KEY_RECVPORT;
-            if((portvar & _KEY_POS1MASK) == 0) {
+            portvar.byte = _KEY_RECVPORT;
+            if(!_KEY_POS1MASK(portvar)) {
                 keyin_now.BIT0A = 1;
-            } else {
-                keyin_now.BIT0A = 0;
             }
-            if((portvar & _KEY_POS2MASK) == 0) {
+            if(!_KEY_POS2MASK(portvar)) {
                 keyin_now.BIT1A = 1;
-            } else {
-                keyin_now.BIT1A = 0;
             }
-            if((portvar & _KEY_POS3MASK) == 0) {
+            if(!_KEY_POS3MASK(portvar)) {
                 keyin_now.BIT2A = 1;
-            } else {
-                keyin_now.BIT2A = 0;
             }
-            if((portvar & _KEY_POS4MASK) == 0) {
+            if(!_KEY_POS4MASK(portvar)) {
                 keyin_now.BIT3A = 1;
-            } else {
-                keyin_now.BIT3A = 0;
             }
-            latchvar = _KEY_SENDPORT;
-            latchvar |= _KEY_SENDPORTMASK;
-            _KEY_SENDPORT = latchvar; // Group1 UP.
+            _KEY_SENDPORT |= _KEY_SENDPORTMASK; // Group1 DOWN.
             break;
         case 3:
-            latchvar = _KEY_SENDPORT;
-            latchvar &= ~_KEY_GRP2MASK;
-            _KEY_SENDPORT = latchvar; // Group2 DOWN.
+            _KEY_SEND_GRP2 = 0; // Group2 DOWN.
             break;
         case 4:
-            portvar = _KEY_RECVPORT;
-            if((portvar & _KEY_POS1MASK) == 0) {
+            portvar.byte = _KEY_RECVPORT;
+            if(!_KEY_POS1MASK(portvar)) {
                 keyin_now.BIT0B = 1;
-            } else {
-                keyin_now.BIT0B = 0;
             }
-            if((portvar & _KEY_POS2MASK) == 0) {
+            if(!_KEY_POS2MASK(portvar)) {
                 keyin_now.BIT1B = 1;
-            } else {
-                keyin_now.BIT1B = 0;
             }
-            if((portvar & _KEY_POS3MASK) == 0) {
+            if(!_KEY_POS3MASK(portvar)) {
                 keyin_now.BIT2B = 1;
-            } else {
-                keyin_now.BIT2B = 0;
             }
-            if((portvar & _KEY_POS4MASK) == 0) {
+            if(!_KEY_POS4MASK(portvar)) {
                 keyin_now.BIT3B = 1;
-            } else {
-                keyin_now.BIT3B = 0;
             }
-            latchvar = _KEY_SENDPORT;
-            latchvar |= _KEY_SENDPORTMASK;
-            _KEY_SENDPORT = latchvar; // Group1 UP.
+            _KEY_SENDPORT |= _KEY_SENDPORTMASK; // Group1 DOWN.
             break;
         case 5:
-            latchvar = _KEY_SENDPORT;
-            latchvar &= ~_KEY_GRP3MASK;
-            _KEY_SENDPORT = latchvar; // Group2 DOWN.
+            _KEY_SEND_GRP3 = 0; // Group1 DOWN.
             break;
         case 6:
-            portvar = _KEY_RECVPORT;
-            if((portvar & _KEY_POS1MASK) == 0) {
+            portvar.byte = _KEY_RECVPORT;
+            if(!_KEY_POS1MASK(portvar)) {
                 keyin_now.BIT0C = 1;
-            } else {
-                keyin_now.BIT0C = 0;
             }
-            if((portvar & _KEY_POS2MASK) == 0) {
+            if(!_KEY_POS2MASK(portvar)) {
                 keyin_now.BIT1C = 1;
-            } else {
-                keyin_now.BIT1C = 0;
             }
-            if((portvar & _KEY_POS3MASK) == 0) {
+            if(!_KEY_POS3MASK(portvar)) {
                 keyin_now.BIT2C = 1;
-            } else {
-                keyin_now.BIT2C = 0;
             }
-            if((portvar & _KEY_POS4MASK) == 0) {
+            if(!_KEY_POS4MASK(portvar)) {
                 keyin_now.BIT3C = 1;
-            } else {
-                keyin_now.BIT3C = 0;
             }
-            latchvar = _KEY_SENDPORT;
-            latchvar |= _KEY_SENDPORTMASK;
-            _KEY_SENDPORT = latchvar; // Group1 UP.
+            _KEY_SENDPORT |= _KEY_SENDPORTMASK; // Group1 DOWN.
             break;
         case 7:
-            latchvar = _KEY_SENDPORT;
-            latchvar &= ~_KEY_GRP4MASK;
-            _KEY_SENDPORT = latchvar; // Group2 DOWN.
+            _KEY_SEND_GRP4 = 0; // Group4 up
             break;
         case 8:
-            portvar = _KEY_RECVPORT;
-            if((portvar & _KEY_POS1MASK) == 0) {
+            portvar.byte = _KEY_RECVPORT;
+            if(!_KEY_POS1MASK(portvar)) {
                 keyin_now.BIT0D = 1;
-            } else {
-                keyin_now.BIT0D = 0;
             }
-            if((portvar & _KEY_POS2MASK) == 0) {
+            if(!_KEY_POS2MASK(portvar)) {
                 keyin_now.BIT1D = 1;
-            } else {
-                keyin_now.BIT1D = 0;
             }
-            if((portvar & _KEY_POS3MASK) == 0) {
+            if(!_KEY_POS3MASK(portvar)) {
                 keyin_now.BIT2D = 1;
-            } else {
-                keyin_now.BIT2D = 0;
             }
-            if((portvar & _KEY_POS4MASK) == 0) {
+            if(!_KEY_POS4MASK(portvar)) {
                 keyin_now.BIT3D = 1;
-            } else {
-                keyin_now.BIT3D = 0;
             }
-            latchvar = _KEY_SENDPORT;
-            latchvar |= _KEY_SENDPORTMASK;
-            _KEY_SENDPORT = latchvar; // Group4 UP.
-
+            _KEY_SENDPORT |= _KEY_SENDPORTMASK; // Group1 DOWN.
             break;
         default:
             break;