ioport.c

来自「ipod无线遥控发送端,可控制播放,暂停,音量,前进,后退.」· C语言 代码 · 共 55 行

C
55
字号
#include "hal.h"

BYTE KeyOld = 0;

void RfSendKey(BYTE kpr)
{
    BYTE Buf[2];
    
    Buf[0] = kpr;
    Buf[1] = ~kpr;
    for(BYTE i=0; i<6; i++)
        CCxx_send(Buf, 2);
}

#pragma vector=PCINT2_vect 
__interrupt void pcint_isr(void)
{
    BYTE i;
    BYTE KeyNew;

	while(1){
          KeyNew = (~PIND >> 3)&0x1f;
          for(i=5; i>0; i--){
              if(KeyNew & 0x01) break;
              else KeyNew>>=1;
          }
          KeyNew = i;
          
          if(KeyNew==0){
                if(KeyOld == 0){
                    return;   
                }else{
                    KeyOld = 0;
                    RfSendKey(KeyOld);
                    return ;
                }
          }else{
                if(KeyOld == 0){
                    KeyOld = KeyNew;
                    RfSendKey(KeyOld);
                    return ;
                }else{
                    if(KeyOld!=KeyNew) {
                        KeyOld=0;
                        RfSendKey(KeyOld);
                        KeyOld=KeyNew;
                        RfSendKey(KeyOld);
                        return;
                    } 
                }
          }
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?