--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/switch.c Thu Sep 25 00:55:47 2014 +0300
@@ -0,0 +1,39 @@
+#include "stdlib.h"
+//#include "switch.h"
+
+#include <avr/io.h>
+#include <avr/interrupt.h>
+
+byte switch_mask;
+byte switch_status;
+byte switch_state;
+
+ISR(PCINT0_vect)
+{
+ switch_status = 1;
+ switch_state = PINB;
+}
+
+ISR(PCINT1_vect)
+{
+ switch_status = 1;
+ switch_state = PINC;
+}
+
+ISR(PCINT2_vect)
+{
+ switch_status = 1;
+ switch_state = PIND;
+}
+
+byte switch_read (byte *sp)
+{
+ if (!switch_status)
+ return 0;
+
+ switch_status = 0;
+
+ *sp = ~switch_state & switch_mask;
+
+ return 1;
+}