।塞  筮 䠩 audioproc.h

#define KBD_LEFT   0x11  // ⠪   RC5LEFT
#define KBD_RIGHT  0x10  // ⠪   RC5RIGHT
#define KBD_NOKEY  0xFF  

#define COUNT_ENCODER    2 
#define ENCODER_PIN_A    PD3 
#define ENCODER_PIN_B    PD0 
#define ENCODER_PIN_PORT PIND 
#define ENCODER_LEFT     KBD_LEFT
#define ENCODER_RIGHT    KBD_RIGHT

//  ६
volatile signed char enc_flag = -1;
volatile unsigned char enc_key = KBD_NOKEY;
volatile unsigned char enc_count_p = 0, enc_count_m = 0;

  䠩 audioproc.

 楤 init_main
饬

GICR |= _BV(INT0);
MCUCR &= ~(_BV(ISC00));
MCUCR &= ~(_BV(ISC01));

塞  

GICR = 0xC0; MCUCR = 0x0A; MCUCSR = 0x00; GIFR = 0xC0; //    ண

⨬ ࠧ蠥 譥 뢠  INT0, INT1
  ୮  ⠪ (  ᬮ)
 塞    ப 
GICR |= _BV(INT1);
MCUCR &= ~(_BV(ISC10));
MCUCR &= ~(_BV(ISC11));


    ࠡ稪          (   ⮫쪮   ᤥ  )

⠢塞 楤   ࠡ稪 뢠 INT1
//---------------------------------------------------------
void ScanEnc(void)
{
enc_key = KBD_NOKEY;
if (enc_flag == -1)
{
  if (bit_is_clear(ENCODER_PIN_PORT, ENCODER_PIN_B))
  {
    enc_count_p++;
    if (enc_count_p > COUNT_ENCODER)
    {
      enc_count_p = 0;
      enc_key = ENCODER_RIGHT;
    }
    enc_count_m = 0;
  } else {
    enc_count_m++;
    if (enc_count_m > COUNT_ENCODER)
    {
      enc_count_m = 0;
      enc_key = ENCODER_LEFT;
    }
    enc_count_p = 0;
  }	
} 
if (enc_key == KBD_NOKEY) enc_flag = -1; else enc_flag = 1;
}
//---------------------------------------------------------
ISR(SIG_INTERRUPT1)
{
GICR &= ~(_BV(INT0));
GICR &= ~(_BV(INT1));
ScanEnc();
GICR |= _BV(INT0);
GICR |= _BV(INT1);
}
//---------------------------------------------------------

⥯  ᭮ 横 ணࠬ (楤 main)
 訢 

室   ⨯ ⮣

  if ((key(0, LEFT) == 0)  || (key_rc5 == RC5LEFT) )
  {
  if (l_mute == 0) {
    if (v == 0) { v=5; } else { v--; }
    rotate(0);
    key_rc5 = 0x00;
  }	
  }

 ࠢ塞    ⨯ ⮣
  if ((key(0, LEFT) == 0)  || (key_rc5 == RC5LEFT) || (enc_key == KBD_LEFT))
  {
  if (l_mute == 0) {
    if (v == 0) { v=5; } else { v--; }
    rotate(0);
    key_rc5 = 0x00;
    enc_flag = -1; // ⨫ 䫠
  }	
  }

筮  RIGHT

  ࠡ

 १    
᫨        = 졠 ࠢ ᫠ 

