| Автор |
Съобщение |
|
VANK
Ранг: Ориентиран
Регистриран на: Чет Май 12, 2005 11:10 am Мнения: 211
|
Извинявай Киров, не се заяждам, просто искам да изясня случая, може да в от полза за някога (включително и за мен). Ти просто си дал диаграмата само при въртене в едната посока. Погледни, когато има нарастваш фронт на долната поредица на горната има 1, предполагам, ако се види диаграмата при обратно въртене при нарастваш фронт долу, горе ще имаш 0. А това е достатъчно да определиш посоката. Или пък определящ може да е падащтия фронт на долната поредица. Просто трябва да се види и поредицата при обратно завъртване.
Просто и моите са с такива шантави импулсни поредици. И ми е интересно, ако има някакви по-различни енкодери да знам какви са.
|
| Сря Юни 01, 2005 8:04 am |
|
 |
|
Bezmozachen
Ранг: Популярен
Регистриран на: Сря Апр 27, 2005 2:47 pm Мнения: 349 Местоположение: Varna
|
Ей това е. Подпрограмката се вика на всяка 1ms. От опит знам, че от софтуерно филтриране нема нужда. Преди съм се мъчил да го прая с прекъсвание при промяна на порта, но беше отчайващо зле.
Последна промяна Bezmozachen на Сря Юни 01, 2005 4:50 pm, променена общо 1 път
|
| Сря Юни 01, 2005 12:21 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
vank. Обратното завъртане дава същата диаграма но като я гледаш отдясно наляво.
MoZaKa Аз го направих с прекъсвания INT1 i INT0 на ATmega-та и стана много стабилно и не се наложи никаква цифрова филтрация. Малко неприятно че ми взема цели 2 прекъсвания но за сметка на това е просто и не иска външни елементи.
|
| Сря Юни 01, 2005 3:15 pm |
|
 |
|
Bezmozachen
Ранг: Популярен
Регистриран на: Сря Апр 27, 2005 2:47 pm Мнения: 349 Местоположение: Varna
|
Явно си зависи от encoder-а, щото като го правих с interrupt-on-change на PIC-а, ония се шашкаше от фалшиви прекъсвания.
|
| Сря Юни 01, 2005 3:22 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
В АТмегата можеш да забраняваш прекъсванияата поотделно. И като получиш прекъсване от единия пин забраняваш прекъсването от него и разрешаваш другото. А като приемеш цял цикъл разрешаваш двете прекъсвания. Много мазно се получава.
Но може и с пика да се направи подобен алгоритъм като се прави проверка,но ще гълта повече ресурси дето и без това не са силна страна на пиклиовците.
|
| Сря Юни 01, 2005 3:52 pm |
|
 |
|
Гост
|
Áëàãîäàðÿ, ðàçáðàõ òå, kirov. Íàèñòèíà íå ñòàâà "åíêîäåðà", ùîì íÿìà ïðîìÿíà íà âçàèìíîòî ïîëîæåíèå íà èìïóëñíèòå ïîðåäèöè.
|
| Сря Юни 01, 2005 4:39 pm |
|
 |
|
Реконструктор
Ранг: Форумен бог
Регистриран на: Съб Сеп 25, 2004 12:32 pm Мнения: 8382 Местоположение: София
|
Доста просто по принцип се прави.  Но най-просто си е да избереш правилният процесор.
|
| Сря Юни 01, 2005 4:46 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Абсолютно същата диаграма получавам от оптичния датчик на мишка.... Ниското ниво не се застъпва, ама високото да! Ами ако инвертнеш цялото това  Аз точно така го ползвах, броях около 1000 импулса в секунда без проблем.
|
| Сря Юни 01, 2005 5:16 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
_____--_______--________--_______
_---______--________--___________
Може и да съм тъп ама не виждам някакъв понятен алгоритъм без да отчиташ времезакъснения.
|
| Сря Юни 01, 2005 5:48 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
И аз така си мисля. Трябва поне още една фаза.
|
| Сря Юни 01, 2005 7:16 pm |
|
 |
|
Гост
|
"Ìîæå è äà ñúì òúï àìà íå âèæäàì íÿêàêúâ ïîíÿòåí àëãîðèòúì áåç äà îò÷èòàø âðåìåçàêúñíåíèÿ. "
Ùå èçáÿãíà êâàëèôèêàöèèòå, àìà êàêâî òîëêîâà ñëîæíî èìà, íå ìîãà äà ðàçáåðà!
1. Ñëåäèø äâå åäèíèöè.
2. Ñëåäèø íà êîé ïèí ÏÚÐÂÎ òè èäâà ñëåäâàùàòà.
3. Îòáðîÿâàø â çàâèñèìîñò îò òî÷êà 2 íàãîðå èëè íàäîëó.
4. Ïîâòàðÿø îò òî÷êà åäíî.
Àêî ñà èíâåðñíè ñëåäèø íóëèòå è òîâà å.
|
| Чет Юни 02, 2005 7:34 am |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Вариант : врътката спира в момент, когато на единият пин четеш "0". Та питам : как ще разбереш после накъде си тръгнал ?
справка : баба Ванга е починала 
|
| Чет Юни 02, 2005 10:46 am |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Ами простичък отговор... Чакаш момент в който ще ти дойдат единици от двата входа... Това ти е началното състояние... Ех че го нямам сорса пред мен, да покажа колко е елементарно 
|
| Чет Юни 02, 2005 12:14 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Не става!
|
| Чет Юни 02, 2005 12:16 pm |
|
 |
|
Predator_MF
Ранг: Форумен бог
Регистриран на: Чет Окт 07, 2004 1:22 pm Мнения: 1949 Местоположение: София
|
Хаха...не ставало....стига ве  Смятам да не се заяждам повече, следващия ми пост ще бъде с работещия сорс...
|
| Чет Юни 02, 2005 12:20 pm |
|
|