+ int signal;
+ static int total_samples = 0;
+ static int high_samples = 0;
+
+ if (total_samples >= 1000) {
+ if (high_samples > 500) {
+ signal = HIGH;
+ }
+ else {
+ signal = LOW;
+ }
+ total_samples = 0;
+ high_samples = 0;
+ }
+ else {
+ total_samples += 1;
+ if (digitalRead(wwvb) == HIGH) {
+ ++high_samples;
+ }
+ }
+