Svetelektro.com

Svetelektro.com

Meno:
Heslo:
SVETELEKTRO • Pocitanie impulzov z enkodera.

Pocitanie impulzov z enkodera.

Moderátori: psichac, Moderátori

Pocitanie impulzov z enkodera.

Odoslaťod miroL » 26 Máj 2015, 15:27

Zdravim vas pani..
Potrebujem pocitat impulzy z enodera. Ma kanaly A, B a Z a procesor AVR. Spravil som si kratky program na jeho otestovanie, ale len kanal A, vyuzil som prerusenie, nacital som 1024 impulzov, ale potrebujem z neho dostat 4096, a neviem, ako sa to bezne robi. V helpe Bascomu som nasiel aj nejaky prikaz Encoder, ale narozumiem tomu. Nemate niekto nejaky kratky vzorovy programek, najlepsie z komentarom, z ktoreho by som odkukal?
Dakujem.
miroL
Obrázok používateľa
Stály člen
Stály člen
Príspevky: 462
Vek: 48.96
Založený: 28.05.2008
Bydlisko: TRNAVA
Karma: 5

Re: Pocitanie impulzov z enkodera.

Odoslaťod dxr » 26 Máj 2015, 16:19

Používateľ dostal BAN.

Vymenim priklad za trafo najlepsie aj s tlmivkou :mrgreen:
vies preco to pisem .... uz to mam aj pripravene okomentovane caka sa na Mira :)
Naposledy upravil dxr dňa 26 Máj 2015, 16:39, celkovo upravené 1 krát.
Mahátma Ghándí: „Nejdřív tě budou ignorovat. Pak se ti budou smát. Pak proti tobě budou bojovat. Potom zvítězíš.“
čo viac dodať som taký a možeš to skúsiť vyhrať aj tak to vzdáš.. Obrázok
Arduino is popular becouse allow complex task with minimum investment
dxr
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 3968
Založený: 05.08.2013
Bydlisko: V strede nicoho
Karma: 46

Re: Pocitanie impulzov z enkodera.

Odoslaťod martin63 » 26 Máj 2015, 16:38

Ja si predstavujem, že máš klasický enkóder, ktorého piny musíš pripojiť na procesor. Piny musia byť pripojené na procesor dva a nie jeden. A potom jeden pin pripojíš na prerušenie a keď nastane, prečítaš hodnotu aj na druhom pine. A máš nejaké dve čísla (10 alebo 11). No a takto si vieš zistiť aj smer točenia. S jedným pripojeným pinom to nezistíš.

-- Spojený príspevok 26 Máj 2015, 15:45 --

a keď vieš napočítať 1024 tak prečo nevieš napočítať aj viac? Keď sa dostaneš na 1024 tak počítaj ďalej :D.
martin63
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 1699
Vek: 29.31
Založený: 11.05.2008
Bydlisko: Námestovo
Karma: 12

Re: Pocitanie impulzov z enkodera.

Odoslaťod miroL » 26 Máj 2015, 19:34

Piny musia byť pripojené na procesor dva a nie jeden. A potom jeden pin pripojíš na prerušenie a keď nastane, prečítaš hodnotu aj na druhom pine. A máš nejaké dve čísla (10 alebo 11). No a takto si vieš zistiť aj smer točenia. S jedným pripojeným pinom to nezistíš.


Samozrejme, tak som to mal, asi som sa zle vyjadril. Neviem, ako to nazvat. Skratka neviem vyuzit to vzajomne posunutie oboch signalov o 90 stupnov, kde mam potom 4 cisla. Do jedneho smeru 00,01,11,10 a do opacneho 00,10,11,01. A samozrejme, ako ich dalej "spracovat".
miroL
Obrázok používateľa
Stály člen
Stály člen
Príspevky: 462
Vek: 48.96
Založený: 28.05.2008
Bydlisko: TRNAVA
Karma: 5

Re: Pocitanie impulzov z enkodera.

Odoslaťod Zaky » 26 Máj 2015, 21:06

Maximální rozlišení se dosáhne, pokud se přerušení vyvolává každou hranou a testuje se při tom ten druhý signál. Není to implementačně úplně snadné. Když jsem toto řešil, použil jsem MCU, který úlohu umí hardwarově, přijde mi to z hlediska rizika ztráty impulsu značně bezpečnější.
Zaky
Stály člen
Stály člen
Príspevky: 124
Založený: 08.11.2014
Karma: 1

Re: Pocitanie impulzov z enkodera.

Odoslaťod martin63 » 26 Máj 2015, 21:07

Nemáš štyri čísla, máš len dve čísla. Ty si musíš nastaviť prerušenie na nábežnú, alebo dobežnú hranu. Ak budeš mať nastavené prerušenie na dobežnú hranu, tak sa ti prerušenie zavolá, keď ti bude padať z log1 na log0 a v tomto okamihu si prečítaš hodnotu na druhom pine a ak tam bude log1 točíš napríklad doprava a ak tam bude log0 točíš doľava.

Jeden pin len zavesíš na prerušenie a budeš čítať hodnotu na tom druhom pine.

Toť príklad. Hádam to tam uvidíš :).
Obrázok
martin63
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 1699
Vek: 29.31
Založený: 11.05.2008
Bydlisko: Námestovo
Karma: 12

Re: Pocitanie impulzov z enkodera.

Odoslaťod miroL » 26 Máj 2015, 22:15

Martin dakujem, ale to co mi ty radis, je ten bezny sposob, to mam vyskusane. Myslim, ze Zaky spravne pochopil, o co sa mi jedna. Prave ten postup ma zaujima, prerusenie pri kazdej hrane, cim sa dosiahne vyssi pocet impulzov, vacsie rozlisenie. Pridavam link na help z Bascomu, tam je to aj s tymi 4 cislami, ktore som spominal.
http://avrhelp.mcselec.com/index.html?encoder.htm
miroL
Obrázok používateľa
Stály člen
Stály člen
Príspevky: 462
Vek: 48.96
Založený: 28.05.2008
Bydlisko: TRNAVA
Karma: 5

Re: Pocitanie impulzov z enkodera.

Odoslaťod Zaky » 26 Máj 2015, 22:32

Použil jsem procesor Cypress PSOC4, jeho PWM periferie přímo umí hardwarově dekódovat módy 1x,2x,4x. Stačí si jen programově vyčítat hodnotu counteru a ošetřit si přetečení/podtečení. Lze takto jedním procesorem číst až 4 enkodéry najednou bez rizika ztráty pulsů, přičemž procesor může řešit nadřazenou úlohu, dekódování nebere žádný výpočetní výkon. Myslím, že čistě softwarově bude 4x režim dost boj. Popis periferie zde: http://www.cypress.com/?rID=78825
Zaky
Stály člen
Stály člen
Príspevky: 124
Založený: 08.11.2014
Karma: 1


Naspäť na Bascom

Kto je prítomný

Užívatelia prezerajúci si toto fórum: Žiadny registrovaný používateľ a 1 hosť.

Forums ©
Autor stránky je Ondrej Závodský(zawin), o graficky design sa stará Ľuboš Fabo(BUFU).

TOPlist

Powered by Copyright © UNITED-NUKE CMS. All Rights Reserved.
Čas potrebný k spracovaniu stránky 0.31 sekúnd