Эмуляция кнопок мыши на тензодатчиках?

Обсуждаем контроллеры компании Atmel.
Ответить
shinsei
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Вс окт 18, 2015 19:43:37
Откуда: Одесса

Эмуляция кнопок мыши на тензодатчиках?

Сообщение shinsei »

Уважаемые гуру, подскажите, что не так в коде? Программа работает на ПК и обращается к ATMega32A по USB (через V-USB). Эмуляция мыши правой кнопки почему-то срабатывает, как будто её нажали и не отпускают, а левая вообще не реагирует.
Сама идея программы в том, что подключены два тензодатчика, при изменении значения одного из них должна срабатывать кнопка мыши (левая или правая), но они как-то не так себя ведут.
Может написано сумбурно, тогда уточните и я поправлюсь.
За ранее спасибо за ответ.
Вот код программы:

Код: Выделить всё

private void timer1_Tick(object sender, EventArgs e)
        {
            Point ptCoords = new Point();
            GetCursorPos(ref ptCoords);
            // получение координат x и y для мыши
            int x = (int)ptCoords.X;
            int y = (int)ptCoords.Y;
 
            int tmp = readADC(0);
            if (tmp <= 480)
            {
                mouse_event(MouseFlags.Absolute | MouseFlags.LeftDown, x, y, 0, UIntPtr.Zero);
             }
            else
            {
                mouse_event(MouseFlags.Absolute | MouseFlags.LeftUp, x, y, 0, UIntPtr.Zero);
            }
            int tmp1 = readADC(1);
            if (tmp1 <= 890)
            {
                mouse_event(MouseFlags.Absolute | MouseFlags.RightDown, x, y, 0, UIntPtr.Zero);
             }
            else
            {
                mouse_event(MouseFlags.Absolute | MouseFlags.RightUp, x, y, 0, UIntPtr.Zero);
            }
        }
Иногда только ошибившись ты понимаешь как попал.
Реклама
shinsei
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Вс окт 18, 2015 19:43:37
Откуда: Одесса

Re: Эмуляция кнопок мыши на тензодатчиках?

Сообщение shinsei »

Разобрался почему не работала левая кнопка, просто надо было поставить &, а не |,

Код: Выделить всё

set_admux &= ((0 << ATMega16.MUX3) | (0 << ATMega16.MUX2) | (0 << ATMega16.MUX1) | (0 << ATMega16.MUX0));
но всё равно остается проблема. Через некоторое время работы программы начинает срабатывать команда работы правого тензодатчика, хотя он в покое. Из-за чего это может быть?
Иногда только ошибившись ты понимаешь как попал.
Реклама
Аватара пользователя
radteh
Друг Кота
Сообщения: 3087
Зарегистрирован: Пт мар 09, 2007 15:01:52
Откуда: Биробиджан

Re: Эмуляция кнопок мыши на тензодатчиках?

Сообщение radteh »

Это может быть из-за подключения, например наводки. Есть возможность сделать вывод в порт значения с датчика?
shinsei
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Вс окт 18, 2015 19:43:37
Откуда: Одесса

Re: Эмуляция кнопок мыши на тензодатчиках?

Сообщение shinsei »

В принципе да
Иногда только ошибившись ты понимаешь как попал.
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
radteh
Друг Кота
Сообщения: 3087
Зарегистрирован: Пт мар 09, 2007 15:01:52
Откуда: Биробиджан

Re: Эмуляция кнопок мыши на тензодатчиках?

Сообщение radteh »

Думаю что надо посмотреть что выдаёт датчик, может загрубить его надо.
Реклама
shinsei
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Вс окт 18, 2015 19:43:37
Откуда: Одесса

Re: Эмуляция кнопок мыши на тензодатчиках?

Сообщение shinsei »

С АС0 выдаёт 510, с АС1 - 915. Поэтому и цифры такие стоят, при изгибании чтобы сробатывало
Иногда только ошибившись ты понимаешь как попал.
Реклама
Аватара пользователя
radteh
Друг Кота
Сообщения: 3087
Зарегистрирован: Пт мар 09, 2007 15:01:52
Откуда: Биробиджан

Re: Эмуляция кнопок мыши на тензодатчиках?

Сообщение radteh »

А в момент залипания какие значения?
shinsei
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Вс окт 18, 2015 19:43:37
Откуда: Одесса

Re: Эмуляция кнопок мыши на тензодатчиках?

Сообщение shinsei »

Тоже самое. Достаточно сделать на АС1 - 890, т.е. дать сработать ему как кнопке и вернуть в 910, он начинает тупить, как будто я постоянно его сгибаю и разгибаю, хотя больше его не трогаю. Мне кажется это программно, может deley на пару миллисекунд вставить?
Иногда только ошибившись ты понимаешь как попал.
Аватара пользователя
radteh
Друг Кота
Сообщения: 3087
Зарегистрирован: Пт мар 09, 2007 15:01:52
Откуда: Биробиджан

Re: Эмуляция кнопок мыши на тензодатчиках?

Сообщение radteh »

Ну почему всю информацию нужно вытягивать. Как подключал датчики, через операционник или напрямую? Выложи часть схемы.
shinsei
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Вс окт 18, 2015 19:43:37
Откуда: Одесса

Re: Эмуляция кнопок мыши на тензодатчиках?

Сообщение shinsei »

Вот примерная схема подключения
Вложения
foobar.jpg
(151.06 КБ) 428 скачиваний
Иногда только ошибившись ты понимаешь как попал.
Аватара пользователя
radteh
Друг Кота
Сообщения: 3087
Зарегистрирован: Пт мар 09, 2007 15:01:52
Откуда: Биробиджан

Re: Эмуляция кнопок мыши на тензодатчиках?

Сообщение radteh »

Странные у тебя тензодатчики, насколько я знаю у них обычно 3-4 контакта. Почему ты использовал с разными номиналами?
shinsei
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Вс окт 18, 2015 19:43:37
Откуда: Одесса

Re: Эмуляция кнопок мыши на тензодатчиках?

Сообщение shinsei »

У них не разные номиналы. Как на схеме, я сам делал их. Почему выдают разные значения на АЦП честно не знаю, на тестере одинаковые значения у них
Иногда только ошибившись ты понимаешь как попал.
Аватара пользователя
radteh
Друг Кота
Сообщения: 3087
Зарегистрирован: Пт мар 09, 2007 15:01:52
Откуда: Биробиджан

Re: Эмуляция кнопок мыши на тензодатчиках?

Сообщение radteh »

Если при измерении тестером значения одни, а на АЦП другие, то надо смотреть косяки в монтаже и подключении датчиков. Тензодатчики чувствительны к области нажатия.
shinsei
Первый раз сказал Мяу!
Сообщения: 28
Зарегистрирован: Вс окт 18, 2015 19:43:37
Откуда: Одесса

Re: Эмуляция кнопок мыши на тензодатчиках?

Сообщение shinsei »

Прозвонил, всё в норме
Иногда только ошибившись ты понимаешь как попал.
Ответить

Вернуться в «AVR»