summaryrefslogtreecommitdiffstats
path: root/converter/sun_usb/config.h
diff options
context:
space:
mode:
authortmk <hasu@tmk-kbd.com>2015-06-02 23:59:16 +0900
committertmk <hasu@tmk-kbd.com>2015-06-02 23:59:16 +0900
commit37af88217d62f22fd5d64a7b58285ce9a94d2176 (patch)
treef1c94e5f0de80d9fac495ff11829ba9d76199f35 /converter/sun_usb/config.h
parentfdce0c9cc0b7f8e9f1497cae3ea63a6672ceaf71 (diff)
sun_usb: Fix serial recv intrrupt trriger edge #228
Diffstat (limited to 'converter/sun_usb/config.h')
-rw-r--r--converter/sun_usb/config.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/converter/sun_usb/config.h b/converter/sun_usb/config.h
index cfd39cd513..66036da931 100644
--- a/converter/sun_usb/config.h
+++ b/converter/sun_usb/config.h
@@ -56,12 +56,18 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define SERIAL_SOFT_RXD_BIT 2
#define SERIAL_SOFT_RXD_VECT INT2_vect
/* RXD Interupt */
+#ifdef SERIAL_SOFT_LOGIC_NEGATIVE
+/* enable interrupt: INT2(rising edge) */
+#define INTR_TRIG_EDGE ((1<<ISC21)|(1<<ISC20))
+#else
+/* enable interrupt: INT2(falling edge) */
+#define INTR_TRIG_EDGE ((1<<ISC21)|(0<<ISC20))
+#endif
#define SERIAL_SOFT_RXD_INIT() do { \
/* pin configuration: input with pull-up */ \
SERIAL_SOFT_RXD_DDR &= ~(1<<SERIAL_SOFT_RXD_BIT); \
SERIAL_SOFT_RXD_PORT |= (1<<SERIAL_SOFT_RXD_BIT); \
- /* enable interrupt: INT2(rising edge) */ \
- EICRA |= ((1<<ISC21)|(1<<ISC20)); \
+ EICRA |= INTR_TRIG_EDGE; \
EIMSK |= (1<<INT2); \
sei(); \
} while (0)