wiegand a picaxe

Jindrich Fucik fulda na seznam.cz
Středa Únor 3 21:46:39 CET 2021


Tak on to tam píše hippy v diskuzi že čtením v kódu to asi nepůjde.

První co je podstatné je použít HINT na přerušení.
Pak je asi dobré si všimnout, že on čte jen jednu polaritu (D0).
Já osobně bych to dělal asi tak, že bych jako první příkaz v přerušení 
přečetl celej bajt na portu a až potom ho rozebíral z proměnné. Ale už 
jsem picaxe moc dlouho nepoužil a pamatuji si, že byla nějaká kouzla, 
jak řešit bit v bajtu v proměnné (if bit).

<vtip>Jo a pozor na francouzské komentáře v kódu, ty rozhodně kazí 
funkčnost</vtip>

Mimochodem - pro práci s picaxe je vždy dobré zařídit, aby si příslušný 
dotaz přečetl Jirka. A to se udělá tak, že se klikne na stránce 
http://www.picaxe.cz/ na obrázek robota s nápisem fórum.

Dne 3.2.2021 v 19:48 soteza napsal(a):
> zdravím.
> 
> Od jednoho zákazníka mi zůstala demontovaná RFID čtečka s rozhraním 
> wiegand. Synovec si z ní chtěl udělat jednoduchý alarm s PICAXE ale 
> ouvej. Našel si jednu sice nedotaženou konstrukci, nebo spíš myšlenku na 
> netu wiegand26 protocol on picaxe - help please. | PICAXE Forum 
> <https://picaxeforum.co.uk/threads/wiegand26-protocol-on-picaxe-help-please.19094/> 
> ale...
> 
> Námi použitý picaxe je 20x2, data0 na C.1, data1 na C.2. Kód používá 
> přerušení, které se i 26x provede tak, jak je dlouhý výpis wiegand 26. V 
> obsluze přerušení se testuje, jestli je C1 = 1 a nebo C.2 = 1. A tady je 
> zakopaný pes. Dle mého se sice vykoná přerušení, ale na délku pulzu 5us 
> nestačí zareagovat. Při testovacích výpisech je test obou pinů vždy 
> stejný a výsledek je vždy 26x 1. Vypadá to spíš tak, že to procesor 
> prostě nestihne přečíst. Stejně se to chová na frekvenci M16, M32, i 
> M64. Je to opravdu dosažení maxima procesoru, nebo děláme něco špatně. 
> Já tedy nejsem PICAXEař ale rád bych mu pomohl, když se pro to 
> nadchnul.  Dík za nakopnutí, Zaplik.
> 
> přerušení je nastaveno: |setint not %00000110, %00000110|
> 
> |obsluha přerušení se zápisem do RAM: ||
> |
> 
> |interrupt:||
> |
> 
> |if pinC.1 = 1 then||
> |
> 
> |inc cpt||
> |
> 
> |poke cpt,"1"||
> |
> 
> |else||
> |
> 
> |inc cpt||
> |
> 
> |poke cpt,"0"||
> |
> 
> |endif |
> 
> 
> 
> ||
> 
> 


Další informace o konferenci Hw-list