瀏覽代碼

sun_usb: Fix serial recv intrrupt trriger edge #228

tmk 10 年之前
父節點
當前提交
37af88217d
共有 1 個文件被更改,包括 8 次插入2 次删除
  1. 8 2
      converter/sun_usb/config.h

+ 8 - 2
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)