Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor
volatile uint8_t burstmodeDelayCounter = 0;
invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet.
// http://andidittrich.de/index.php/2012/04/xbox-360-controller-advanced-rapid-fire-mod/ #include "Trigger.h" #include "Calibration.h" // KEY STATES enum{KEYUP=0, KEYDOWN=1, FALLINGEDGE =2, RISINGEDGE=3, KEYDOWN_LONG=4}; // SYTMEM STATE enum{OFFLINE, RAPIDFIRE_SLOW, RAPIDFIRE_FAST, RAPIDFIRE_BURST}; // switch observer volatile uint8_t switchState0 = 2; volatile uint8_t switchState1 = 127; volatile uint8_t switchStateChange = 0; // system state volatile uint8_t systemState = OFFLINE; // led blink counter volatile uint8_t ledBlinkCounter = 0; // burstmode delay counter volatile uint8_t burstmodeDelayCounter = 0; // switch observer ISR - 48ms steady state required -> 122Hz Update Rate ISR (TIMER1_OVF_vect){ // increment burstmode counter //burstmodeDelayCounter = burstmodeDelayCounter+1; // LED BLink Action if (systemState == RAPIDFIRE_FAST){ ledBlinkCounter = ledBlinkCounter+1; // ~ 12 Hz Blink rate if (ledBlinkCounter%20 == 0){ toggleStatusLed(); } } // LED BLink Action if (systemState == RAPIDFIRE_BURST){ ledBlinkCounter = ledBlinkCounter+1; // ~ 18 Hz Blink rate if (ledBlinkCounter < 50){ if (ledBlinkCounter%10 == 0){ toggleStatusLed(); } }else{ showStatusLed(0); } } // SIGNAL A OBERVING (SWITCH) if (bit_is_clear(PINB, PB4)){ // increment -> KEY PRESSED if (switchState0<5){ switchState0++; }else{ // FALLING EDGE DETECTED if (switchStateChange==KEYUP){ switchStateChange = KEYDOWN; } } if (switchState1<255){ switchState1++; }else{ switchStateChange = KEYDOWN_LONG; } }else{ // decrement -> KEY RELEASED if (switchState0>0){ switchState0--; }else{ // RISING EDGE DETECTED if (switchStateChange==KEYDOWN){ switchStateChange = FALLINGEDGE; } } if (switchState1>0){ switchState1--; } } };