Reverse engineering: USB kontrollerade hemautomation hacka (11 / 19 steg)
Steg 11: Reverse engineering: återskapa resultatet
Jag ställa in en timer på en ATmega8.
ATmega körs på 12MHz.
En timer ställs in med en 128 prescaler i CTC läge. I CTC-läge återställs timern och ett avbrott kallas När räkneverket når en viss timer jämför värde.
Räknaren uppdateras varje 128 klockcykel. Detta innebär att jag måste använda 120 och 58 som räknarvärdena för de korta och långa pulserna.
(1000/12000000) * 128 * 121 = 1,29 mS
(1000/12000000) * 128 * 59 = 0,62 mS
Detta är ganska nära de ursprungliga tidsinställningarna.
Jag satte ihop en enkel funktion för att fylla en buffert med fördröjningstiderna för en given RF ram. En avbrottsbegäran rutin kopplar sedan en IO stift på och av och uppsättningar timern jämför värdet att skapa önskad längd puls.
Jag hakade analysatorn logik och kopiera klistras resultatet i Gimp. Bingo! Den resulterande signalen är identisk med den från RF fjärrkontroll :D
Koden ingår i ett senare steg.