mirror of
https://github.com/Theaninova/Arduino-IRremote.git
synced 2026-01-10 19:52:50 +00:00
ISR Commenting
This commit is contained in:
38
irISR.cpp
38
irISR.cpp
@@ -27,14 +27,14 @@ ISR (TIMER_INTR_NAME)
|
|||||||
if (irparams.rawlen >= RAWBUF) irparams.rcvstate = STATE_OVERFLOW ; // Buffer overflow
|
if (irparams.rawlen >= RAWBUF) irparams.rcvstate = STATE_OVERFLOW ; // Buffer overflow
|
||||||
|
|
||||||
switch(irparams.rcvstate) {
|
switch(irparams.rcvstate) {
|
||||||
|
//......................................................................
|
||||||
case STATE_IDLE: // In the middle of a gap
|
case STATE_IDLE: // In the middle of a gap
|
||||||
if (irdata == MARK) {
|
if (irdata == MARK) {
|
||||||
if (irparams.timer < GAP_TICKS) {
|
if (irparams.timer < GAP_TICKS) { // Not big enough to be a gap.
|
||||||
// Not big enough to be a gap.
|
|
||||||
irparams.timer = 0;
|
irparams.timer = 0;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// gap just ended, record duration and start recording transmission
|
// Gap just ended; Record duration; Start recording transmission
|
||||||
irparams.overflow = false;
|
irparams.overflow = false;
|
||||||
irparams.rawlen = 0;
|
irparams.rawlen = 0;
|
||||||
irparams.rawbuf[irparams.rawlen++] = irparams.timer;
|
irparams.rawbuf[irparams.rawlen++] = irparams.timer;
|
||||||
@@ -43,43 +43,43 @@ ISR (TIMER_INTR_NAME)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
//......................................................................
|
||||||
case STATE_MARK: // timing MARK
|
case STATE_MARK: // Timing Mark
|
||||||
if (irdata == SPACE) { // MARK ended, record time
|
if (irdata == SPACE) { // Mark ended; Record time
|
||||||
irparams.rawbuf[irparams.rawlen++] = irparams.timer;
|
irparams.rawbuf[irparams.rawlen++] = irparams.timer;
|
||||||
irparams.timer = 0;
|
irparams.timer = 0;
|
||||||
irparams.rcvstate = STATE_SPACE;
|
irparams.rcvstate = STATE_SPACE;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
//......................................................................
|
||||||
case STATE_SPACE: // timing SPACE
|
case STATE_SPACE: // Timing Space
|
||||||
if (irdata == MARK) { // SPACE just ended, record it
|
if (irdata == MARK) { // Space just ended; Record time
|
||||||
irparams.rawbuf[irparams.rawlen++] = irparams.timer;
|
irparams.rawbuf[irparams.rawlen++] = irparams.timer;
|
||||||
irparams.timer = 0;
|
irparams.timer = 0;
|
||||||
irparams.rcvstate = STATE_MARK;
|
irparams.rcvstate = STATE_MARK;
|
||||||
|
|
||||||
} else if (irparams.timer > GAP_TICKS) { // SPACE
|
} else if (irparams.timer > GAP_TICKS) { // Space
|
||||||
// big SPACE, indicates gap between codes
|
// A long Space, indicates gap between codes
|
||||||
// Mark current code as ready for processing
|
// Flag the current code as ready for processing
|
||||||
// Switch to STOP
|
// Switch to STOP
|
||||||
// Don't reset timer; keep counting space width
|
// Don't reset timer; keep counting Space width
|
||||||
irparams.rcvstate = STATE_STOP;
|
irparams.rcvstate = STATE_STOP;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
//......................................................................
|
||||||
case STATE_STOP: // waiting, measuring gap
|
case STATE_STOP: // Waiting; Measuring Gap
|
||||||
if (irdata == MARK) irparams.timer = 0 ; // reset gap timer
|
if (irdata == MARK) irparams.timer = 0 ; // Reset gap timer
|
||||||
break;
|
break;
|
||||||
|
//......................................................................
|
||||||
case STATE_OVERFLOW: // Flag up a read overflow
|
case STATE_OVERFLOW: // Flag up a read overflow; Stop the State Machine
|
||||||
irparams.overflow = true;
|
irparams.overflow = true;
|
||||||
irparams.rcvstate = STATE_STOP;
|
irparams.rcvstate = STATE_STOP;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If requested, flash LED L (D13) while receiving IR data
|
||||||
if (irparams.blinkflag) {
|
if (irparams.blinkflag) {
|
||||||
if (irdata == MARK) BLINKLED_ON() ; // turn pin 13 LED on
|
if (irdata == MARK) BLINKLED_ON() ; // turn pin 13 LED on
|
||||||
else BLINKLED_OFF() ; // turn pin 13 LED off
|
else BLINKLED_OFF() ; // turn pin 13 LED off
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user