중요한 점은 딜레이 타이밍이고, 레버 커맨드 중간에 반드시 중립 값이 들어가야 한다는 것이다.

최적의 딜레이를 찾기 위해서 항상 실험중

#include <16f887.h>
#byte portb=0x06
#byte portd=0x08
#use delay(clock=4000000)

void main()
{
   set_tris_b(0x0f);
   set_tris_d(0x00);
   portd=0xff;
   
   for(;;){
      portd=0;
     if(bit_test(portb,0)==0){ //RB0누르면 시전
         portd=0b00001101; //도발 커맨드
         delay_ms(465);
         portd=0b00100000; //<=커맨드
         delay_ms(20);
         portd=0;       //레버 중립
         delay_ms(16);
         portd=0b00010010; //제트어퍼 시전
         delay_ms(300);
         portd=0;       //레버 중립
         delay_ms(600);
      }
      if(bit_test(portb,1)==0){ //RB0누르면 시전
         portd=0b00001101; //도발 커맨드
         delay_ms(465);
         portd=0b00010000; //=>커맨드
         delay_ms(20);
         portd=0;       //레버 중립
         delay_ms(16);
         portd=0b00100010; //제트어퍼 시전
         delay_ms(300);
         portd=0;       //레버 중립
         delay_ms(600);
      }
   }
}

최종 실험 결과 동영상

118번 시전 중 73회 성공 : 성공률 61.86%

Posted by 공돌이pooh
,