Tänk bara på att om du ska sända "antalet pulser" t.ex. en gång var femte sekund, så måste du räkna med risken att det kommer in en puls exakt när du ska sända. Är det dåligt programmerat så kan den missa pulsen, eller ännu värre , sända ett helt felaktigt värde (om räknaren t.ex. är 16-bitars och den ska precis slå om till jämnt tal delbart med 256 när sändning sker).
Om du räknar pulser med interrupt så föreslår jag följande inför sändning av data:
Kod: Markera allt
uint16_t puls_counter;
uint16_t data_to_send;
...
// send data
cli(); // stäng av interrupt tillfälligt
data_to_send = puls_counter;
puls_counter = 0;
sei();
// nu har du säkrat värdet i variabeln "data_to_send".