Rotační enkodér (detekce vpravo a vlevo)
Moderátori: psichac, Moderátori
- jirka.jirka.
- Ultimate člen
- Príspevky: 1539
- Dátum registrácie: 17 Okt 2008, 00:00
- Bydlisko: Uherské Hradiště
- Kontaktovať používateľa:
Re: Rotační enkodér (detekce vpravo a vlevo)
Tak jsem vyzkoušel chod pouze s jedním timerem (TIMER1). Nechal jsem ho nastavený na těch 10ms a změna skoro žádná. Takže to opravdu asi bude tím, že počítám s velkým číslem. Zkusím ten časovač předělat do těch smyček for() a dám vědět jak jsem dopadl.
0
Re: Rotační enkodér (detekce vpravo a vlevo)
v obsluhe tlacitka je pri tomto sposobe kontrola zakmitov zbytocna { dokonca iba na skodu, zbytocne zabera na flash miesto a v isr cas }. ak sa pytas na stav tlacitka raz za urcity cas, vobec ta nemusi zaujimat, ci tam su alebo niesu nejake zakmity
0
- boraicho
- Ultimate člen
- Príspevky: 12414
- Dátum registrácie: 03 Feb 2007, 00:00
- Bydlisko: Prešov
- Vek: 35
- Kontaktovať používateľa:
Re: Rotační enkodér (detekce vpravo a vlevo)
konečne som po dlhych hodinach po skušani roznych kombinacii našiel najlepší s najlepšich
možno sa niekomu prida ale je to fakt dobre a rychle a 99,9% bez chybné.
možno sa niekomu prida ale je to fakt dobre a rychle a 99,9% bez chybné.
Kód: Vybrať všetko
int stav=0;
int vstup()
{
stav=0;
while(!stav)
{
if(RA3==1)
{_delay_ms(2);
while(RA2==1&&RA3==1);
if(RA2==1)
stav=1;
}
if(RA2==1)
{_delay_ms(2);
while(RA2==1&&RA3==1);
if(RA3==1)
stav=2;
}
_delay_ms(10);
}
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS
3D REBEL II + PLA + PETG
CNC 1810 na DPS
Re: Rotační enkodér (detekce vpravo a vlevo)
boraicho trošku tomu nerozumiem
while(!stav)
{
if(RA3==1) // pokial je RA3 = 1 vykonaj to čo je v zátvorke
{_delay_ms(2); // počkaj 2ms
while(RA2==1&&RA3==1); // pokial RA2 je 1 a RA3 je 1 vykonávaj .. čo ???
if(RA2==1) // pokial je RA2 =1 vykonaj čo ???
stav=1;
}
while(!stav)
{
if(RA3==1) // pokial je RA3 = 1 vykonaj to čo je v zátvorke
{_delay_ms(2); // počkaj 2ms
while(RA2==1&&RA3==1); // pokial RA2 je 1 a RA3 je 1 vykonávaj .. čo ???
if(RA2==1) // pokial je RA2 =1 vykonaj čo ???
stav=1;
}
Re: Rotační enkodér (detekce vpravo a vlevo)
načo tam máš tú druhú polovicu programu. šak ak na RA3 nastane zmena, dáš prerušenie a počkáš 2ms ( podla datasheetu ) a potom RA2=0 - jedna strana , alebo RA2=1 druhá strana, samozrejme s ošetrením zákmitov a musí sa s enkóderom točiť v istom rýchlostnom rozsahu. toto je najjednoduchšie, už sme sa o tom x krát bavili
0
osvitka: http://tinyurl.com/7e58nul
pec: http://tinyurl.com/zr3gw8t
maska: http://tinyurl.com/hodwv79
leptanie: http://tinyurl.com/gpsgq6g
prekovy: http://tinyurl.com/zr48jn2
pec: http://tinyurl.com/zr3gw8t
maska: http://tinyurl.com/hodwv79
leptanie: http://tinyurl.com/gpsgq6g
prekovy: http://tinyurl.com/zr48jn2
- jirka.jirka.
- Ultimate člen
- Príspevky: 1539
- Dátum registrácie: 17 Okt 2008, 00:00
- Bydlisko: Uherské Hradiště
- Kontaktovať používateľa:
Re: Rotační enkodér (detekce vpravo a vlevo)
Tak problém s tím zpožděním jsem vyřešil. A měl bych se stydět.
Programuju vlastně postaveným JTAG programátorem, ale měl jsem ho špatně nastavený. Místo nastavení externího 16MHz krystalu, jsem měl nastavený interní 8MHz.
Programuju vlastně postaveným JTAG programátorem, ale měl jsem ho špatně nastavený. Místo nastavení externího 16MHz krystalu, jsem měl nastavený interní 8MHz.
0
- boraicho
- Ultimate člen
- Príspevky: 12414
- Dátum registrácie: 03 Feb 2007, 00:00
- Bydlisko: Prešov
- Vek: 35
- Kontaktovať používateľa:
Re: Rotační enkodér (detekce vpravo a vlevo)
right na konci while je znak ; čiže nič nerobi čiže čaka dokiaľ nezmiznu obidva 1tky.zo vstupu a potom ak je na RA3==1; tak čo spravi no predsa zapiše do premenej stav=1; ved to ide takto if(RA3==1) stav=2; ak by tam bolo viac prikazov tak treba davať {} ale ak len jeden tak tie {} zatvorky neni potreba davať.
mato3000 hej viem bavili ale neni to presne. tie 2ms su take na zamyslenie, ak s tym točiš rychlo alebo pomaly tak nemaš tam stale tych 2mS.
mato3000 hej viem bavili ale neni to presne. tie 2ms su take na zamyslenie, ak s tym točiš rychlo alebo pomaly tak nemaš tam stale tych 2mS.
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS
3D REBEL II + PLA + PETG
CNC 1810 na DPS
Re: Rotační enkodér (detekce vpravo a vlevo)
jirka.jirka. : clovek sa na cudzich chybach nikdy nepouci tak, ako na vlastnych
boraicho : nechapem, k comu je dobry takyto kod ? je to priklad, ako pouzit jeden pic pre obsluhu jedneho enkoderu ?
boraicho : nechapem, k comu je dobry takyto kod ? je to priklad, ako pouzit jeden pic pre obsluhu jedneho enkoderu ?
0
- boraicho
- Ultimate člen
- Príspevky: 12414
- Dátum registrácie: 03 Feb 2007, 00:00
- Bydlisko: Prešov
- Vek: 35
- Kontaktovať používateľa:
Re: Rotační enkodér (detekce vpravo a vlevo)
http://svetelektro.com/Forum/opat-osvitka-t18787.html mas pocit že tam je len jeden enkoder? maš lepši kod? daj nebud skupy a podeľ sa.
- Prílohy
-
- Osvitka.sch
- (284.54 KiB) 62 stiahnutí
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS
3D REBEL II + PLA + PETG
CNC 1810 na DPS
- boraicho
- Ultimate člen
- Príspevky: 12414
- Dátum registrácie: 03 Feb 2007, 00:00
- Bydlisko: Prešov
- Vek: 35
- Kontaktovať používateľa:
Re: Rotační enkodér (detekce vpravo a vlevo)
ale ved daj konkretne
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS
3D REBEL II + PLA + PETG
CNC 1810 na DPS
Re: Rotační enkodér (detekce vpravo a vlevo)
hej to nemáš, ale máš tam napríklad 2,2ms a lebo 2,3 ms a to všetko je v norme. isto to je jednoduchý príklad a malo by sa to robiť úplne inak, ale som presvedčený že toto ti bohate na 2 roky stačí.boraicho napísal:
mato3000 hej viem bavili ale neni to presne. tie 2ms su take na zamyslenie, ak s tym točiš rychlo alebo pomaly tak nemaš tam stale tych 2mS.
a dúfam že chápeš že tie 2ms je ako príklad a pozrel si sa do datasheetu že koľko to trvá tvojemu enkóderu ? a do pozornosti dávam čas 2ms ako celkový čas od logickej zmeny na prvom pine. takže ak tam budeš mať ošetrenie proti zákmitom a pod zdržania tak to už neni 2ms ale napríklad 1,5ms
0
osvitka: http://tinyurl.com/7e58nul
pec: http://tinyurl.com/zr3gw8t
maska: http://tinyurl.com/hodwv79
leptanie: http://tinyurl.com/gpsgq6g
prekovy: http://tinyurl.com/zr48jn2
pec: http://tinyurl.com/zr3gw8t
maska: http://tinyurl.com/hodwv79
leptanie: http://tinyurl.com/gpsgq6g
prekovy: http://tinyurl.com/zr48jn2
- boraicho
- Ultimate člen
- Príspevky: 12414
- Dátum registrácie: 03 Feb 2007, 00:00
- Bydlisko: Prešov
- Vek: 35
- Kontaktovať používateľa:
Re: Rotační enkodér (detekce vpravo a vlevo)
šak ja raz pridem do BA za tebou a potom sa uvidi kto ma pravdu a v datahseete mam 2ms a donesiem aj elektroniku aby si videl.
0
"Aj nevinne vyzerajúca súčiastka, môže byť príčinou nefunkčnosti zariadenia a tou kondenzator 100% je"
3D REBEL II + PLA + PETG
CNC 1810 na DPS
3D REBEL II + PLA + PETG
CNC 1810 na DPS
Re: Rotační enkodér (detekce vpravo a vlevo)
netvrdím že nie, len ťa poznám nemáš sa rád s datasheetmi, ale neboj skamarátiš sa ale ten celkový čas si nemeral však ?
0
osvitka: http://tinyurl.com/7e58nul
pec: http://tinyurl.com/zr3gw8t
maska: http://tinyurl.com/hodwv79
leptanie: http://tinyurl.com/gpsgq6g
prekovy: http://tinyurl.com/zr48jn2
pec: http://tinyurl.com/zr3gw8t
maska: http://tinyurl.com/hodwv79
leptanie: http://tinyurl.com/gpsgq6g
prekovy: http://tinyurl.com/zr48jn2
Re: Rotační enkodér (detekce vpravo a vlevo)
boraicho. poď večer na skype, ten spôsob ako to robíš je úplne zlý, ja som predpokladal že používaš prerušenie, ak nie tak ten enkóder ti tak ako to chceš nebude fungovať
0
osvitka: http://tinyurl.com/7e58nul
pec: http://tinyurl.com/zr3gw8t
maska: http://tinyurl.com/hodwv79
leptanie: http://tinyurl.com/gpsgq6g
prekovy: http://tinyurl.com/zr48jn2
pec: http://tinyurl.com/zr3gw8t
maska: http://tinyurl.com/hodwv79
leptanie: http://tinyurl.com/gpsgq6g
prekovy: http://tinyurl.com/zr48jn2