Čtení Wiegand osmibitem
Moderátor: Moderátoři
- JirkaRCK
- Příspěvky: 248
- Registrován: 25 dub 2010, 00:00
- Bydliště: Olomouc/Brno
- Kontaktovat uživatele:
Čtení Wiegand osmibitem
Hodně mi pomohlo toto.
Krabička je od té doby v provozu 24/7 a šlape, takže to jde.
- JirkaRCK
- Příspěvky: 248
- Registrován: 25 dub 2010, 00:00
- Bydliště: Olomouc/Brno
- Kontaktovat uživatele:
Na ty hradla zapomen, pokud prijde pulz z vice ctecek najednou, nemusis je zachytit.
S tim vzorkovanim by to taky slo, jen bys musel v preruseni timeru treba kazdych 20us rychle nacist stavy vstupu, nekam je zapsat a inkrementovat nejakou nejakou 8bitovou promenou pro kazdy port. Vse ostatni bys zpracovaval v hlavni smycce. Tam by se to muselo stihnout zpracovat do dalsiho pulzu, pokud bys mel v hlavni smycce nejake zdlouhavosti, opet prerusit od dalsiho timeru a zpracovat. Pomocna promena kterou bys v preruseni postupne zvysoval by ti hlidala chyby prenosu - pokud do predpokladane doby neprijde nula ani jednicka, vyhlasi se chyba a nuluje prenos. Neni spatne ty chyby sledovat a v pripade jejich zvyseneho vyskytu na to upozornit.
Ono taky zalezi na co to mas, jestli to ma byt nejaka hracka nebo to ma fungovat naprosto neprustrelne, pokud mozno. Pocitej s tim, ze pokud budes mit draty delsi nez kratke, budes tam mit spoustu ruseni se kterym se musis poprat, pomuze RS485, ale i tak bych to jen na preruseni nenechaval.
Ja to mam delane tak, ze pokud prijde sestupna hrana, navzorkuju port behem 50us nekolikrat a pokud prevazuje nula, pocitam pulz za platny. Po predpokladanem konci pulzu zacinam casovat okno kde se ignoruji vsechny prichozi data, az zhruba do doby kdy predpokladam prijeti dalsiho pulzu. Podstatne se tak snizi pravdepodobnost zachyceni nejakeho ruseni. Ja mam ale jen jednu ctecku, pro tebe by to chtelo asi nejaky rychlejsi MCU.