Postanowiłem zgłębić dekodowanie sygnału z EM4095, którym jest kod RFID. Posiadam karty 125kHz Manchester.
EM4095 posiada dwa interesujące mnie wyjścia: RDY/CLK czyli sygnał zegarowy i DEMOD_OUT czyli zdemodulowany sygnał z karty. sygnał zegarowy między zboczami trwa 7,95-8,3 us, natomiast sygnał z karty liczy między zboczami 32 lub 64 syknięcia zegara.

Jak widać na przebiegach i podpierając się ramką RFID mamy następujący sygnał karty:
111111111
00000
00000
00000
00000
01001
01111
11000
00101
10001
00000
01010
Jest to dziewięć "1" początkowych, dziesięć razy cztery bity numeru karty i bit parzystości wierszy, cztery bity parzystości kolumn i "0"
Moja metoda dekodowania to:
jeśli na górze mamy długą kreskę to mamy przejście 0->1
jeśli na dole mamy długą kreskę to mamy przejście 1->0
każda krótka kreska to powtórzenie aktualnego stanu.
Sygnał chcę zamienić na ASCII za pomocą Attiny13A i wysłać za pomocą uart lub I2C (zależnie od wersji).
Tu są moje pytanie:
Pomysł to liczenie sygnału zegarowego jednym przerwaniem (liczenie tylko zboczy opadających) i szukanie zbocza na demod (muszę wiedzieć jakie wystąpiło) - po jego wystąpieniu sprawdzanie licznika zegarowego i zapisywanie bitu do zmiennej. I tu właśnie nie wiem, których przerwań najlepiej użyć. Jakaś mała podpowiedź byłaby dla mnie zbawieniem.