Stap 3: Codering de modulatie met een tijdsignaal
ISR(TIMER0_COMPA_vect) {}
schakelaar (slot) {}
geval van 0: {signaal = 2; break;}
geval 1: {signaal = ((minute_tens >> 2) & 1); break;} / / min 40
geval 2: {signaal = ((minute_tens >> 1) & 1); break;} / / min 20
Case 3: {signaal = ((minute_tens >> 0) & 1); break;} / / min 10
geval 5: {signaal = ((minute_ones >> 4) & 1); break;} / / min 8
kast 6: {signaal = ((minute_ones >> 2) & 1); break;} / / min 4
geval 7: {signaal = ((minute_ones >> 1) & 1); break;} / / min 2
geval 8: {signaal = (minute_ones & 1); break;} min 1
zaak 9: {signaal = 2; break;}
geval 12: {signaal = ((hour_tens >> 1) & 1); break;} / / 20 uur
zaak 13: {signaal = ((hour_tens >> 0) & 1); break;} / / uur 10
geval 15: {signaal = ((hour_ones >> 4) & 1); break;} / / uur 8
geval 16: {signaal = ((hour_ones >> 2) & 1); break;} / / uur 4
kast 17: {signaal = ((hour_ones >> 1) & 1); break;} / / uur 2
kast 18: {signaal = (hour_ones & 1); break;} uur 1
geval 19: {signaal = 2; break;}
kast 26: {signaal = 1; break;} //
geval van 27: {signaal = 1; break;} Dag van het jaar 60
geval van 29: {signaal = 2; break;} //
kast 31: {signaal = 1; break;} //
geval van 32: {signaal = 1; break;} Dag van jaar 6
kast 37: {signaal = 1; break;} //
geval van 39: {signaal = 2; break;}
kast van 42: {signaal = 1; break;} //
kast 43: {signaal = 1; break;} DUT1 = 0.3
geval van 49: {signaal = 2; break;}
geval van 50: {signaal = 1; break;} Jaar = 08
kast 55: {signaal = 1; break;} Leap year = True
geval van 59: {signaal = 2; break;}
standaard: {signaal = 0; break;}
}
schakelaar (signaal) {}
geval van 0: {}
0 (0.2s verminderd vermogen)
Als (timer < 12) {OCR1A = 6;}
else {OCR1A = 66;}
} breken;
geval 1: {}
1 (0.5s verminderd vermogen)
Als (timer < 30) {OCR1A = 6;}
else {OCR1A = 66;}
} breken;
geval 2: {}
Marker (0.8s verminderde kracht)
Als (timer < 48) {OCR1A = 6;}
else {OCR1A = 66;}
} breken;
}
timer ++; Voorschot timer
Als (timer == 61) {/ / Check om te zien als aan het einde van de tweede
timer = 0; Als dus timer reset
sleuf ++; Verder gegevens sleuf in minuut gegevenspakket
Als (sleuf == 60) {}
slot = 0; Sleuf teruggesteld aan 0 als in 60 seconden
minute_ones ++; Voorschot minuut graaf
}
}
}