Модераторы: PILOT, ManiaK, Mazzi
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [avr] HIDKey 
:(
    Опции темы
Delfin29fly
Дата 26.3.2010, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 26.3.2010

Репутация: нет
Всего: нет



Собрал сей девайс  http://www.obdev.at/products/vusb/hidkeys.html  , подключил к программе Mach3. Но как-то кнопки странно работают. Сделал видео 
http://www.youtube.com/watch?v=pwHVTDoG2Ig
Сначала кнопка работает правильно, но после нескольких нажатий подряд начинает наблюдаться задержка срабатывания, причем задержка возрастает. А далее вообще кнопка "теряется". Если нажать другую, а потом вернуться, цикл повторяется.
Пробовал ставить фирменный numpad, такой проблемы нет.
Где же искать причину?
PM MAIL   Вверх
Delfin29fly
Дата 28.3.2010, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 26.3.2010

Репутация: нет
Всего: нет



Может, здесь что изменить?

Код

    // Button  
    tmp = PINA;
    msk = 0;
    for (i=0;i<8;i++)//8
    {
        msk = 1 << i;
        
        if (tmp&msk)
        {
            if (key[i][0]==0)
            {
                keyDidChange=1;
            }
            key[i][0] = 1;
            key[i][1] = 0;
        }
        else
        {
            if (key[i][1]<KEY_DELAY)
            {
                
                key[i][1]++;
                //
            }
            else
            {
                key[i][0] = 0;
                keyDidChange=1;
            }
        }
        
    }
    tmp = PINC|0x80;
    msk = 0;
    for (i=0;i<7;i++)//8
    {
        msk = 1 << i;
        
        if (tmp&msk)
        {
            if (key[8+i][0]==0)
            {
                keyDidChange=1;
            }
            key[8+i][0] = 1;
            key[8+i][1] = 0;
        }
        else
        {
            if (key[8+i][1]<KEY_DELAY)
            {
                
                key[8+i][1]++;
                //
            }
            else
            {
                key[8+i][0] = 0;
                keyDidChange=1;
            }
        }
        
    }



Это сообщение отредактировал(а) UniBomb - 13.11.2010, 11:06
PM MAIL   Вверх
cardinal
Дата 28.3.2010, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 8
Всего: 99



Цитата(Delfin29fly @  26.3.2010,  12:15 Найти цитируемый пост)
Где же искать причину? 

Почему то думаю, что искать надо в железе...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Delfin29fly
Дата 28.3.2010, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 26.3.2010

Репутация: нет
Всего: нет



В самой схеме? Я пробовал ставить резистор 75кОм от кнопки на +5V, никаких изменений. И что интересно, если использовать тактовую кнопку типа TSA1PS130, то эффект проявляется в меньшей степени (но проявляется), а если использовать кнопку B170H, то практически сразу.

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  ______.pdf 630,88 Kb
PM MAIL   Вверх
cardinal
Дата 28.3.2010, 18:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 8
Всего: 99



Delfin29fly, код я так понимаю твой? Если нет, то дай ссылку на файл с кодом (а не на много разных файлов). Если да, то подумай как решить проблему дребезга (именно поэтому разные кнопки по разному реагируют).


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Delfin29fly
Дата 28.3.2010, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 26.3.2010

Репутация: нет
Всего: нет



Код писал не я. Делал товарищ по моей просьбе (не безвоздмездно). Сейчас с ним связь оборвалась. Сам я в этом деле почти ноль. Но мне нужно доделать девайс. 
И вот то и дело, что кнопки реагируют одинаково. Повторюсь. Если нажимать одну и туже кнопку с частотой более 1 сек(на глаз), всё работает нормально. Если увеличивать частоту, нормально сработает 7-10 раз, затем появляется видимая задержка около 1 сек, а далее нажатие кнопки ни к чему не приводит. Нужно выждать какое-то время, тогда опять всё повторяется. Я хоть и не очень в теме вопроса, но разве эффект дребезга может себя так проявлять? Откуда набегает задержка срабатывания. Я выложил часть кода, это же описывает работу кнопки? Если причина где-то в этом куске, подскажите, скомпелировать я уже научился!
Ещё здесь  #define KEY_DELAY  2  менял на 1
 

А здесь
Код

 if(TIFR & (1<<TOV0))
        {   // 22 ms timer 
            TIFR = 1<<TOV0;
            TimeCounter++;
            keyScan();
            if(TimeCounter>554)//554
            {
                TimeCounter=0;
                GICR|=0x40;
                buildReport();
                //reportBuffer[2]=PIND;
                usbSetInterrupt(reportBuffer, sizeof(reportBuffer));
            }

554 менял от 300 до 570. При 300 что-то более-менее похоже на правильную работу, но всё-же не так.

Это сообщение отредактировал(а) UniBomb - 13.11.2010, 11:05
PM MAIL   Вверх
cardinal
Дата 29.3.2010, 01:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 8
Всего: 99



Цитата(Delfin29fly @  28.3.2010,  19:34 Найти цитируемый пост)
554 менял от 300 до 570.

Поменяй на 1000 smile


Delfin29fly, если ты
Цитата(Delfin29fly @  28.3.2010,  19:34 Найти цитируемый пост)
Сам я в этом деле почти ноль.

то вариантов то всего два
1. спросить с того, который пропал (найти его соответственно перед этим)
2. найти другого, который сделает

Часто чтобы понять в чем проблема надо поиграться с железкой и с кодом. Ни у кого на форуме нет ни твоего кода, ни твоей железки. Соответственно все советы будут скорее от балды. А в конце концов окажется, что у тебя кнопка плохо припаяна (или просто ###кнопка)... smile 


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

На данный раздел помимо Правил форума распространяются текже следующие правила:


  • Прежде чем создать тему воспользуйтесь поиском или посмотрите в faq. Возможно на форуме уже есть ответ на ваш или близкий к вашему вопрос.
  • В заголовке темы в квадратных скобках обозначьте используемое семейство микроконтроллера: [avr],[pic],[arm].
  • При создании темы с вопросом указывайте участок кода с ошибкой, версию компилятора, схемы подключения, fuse биты и прочие данные, которые помогут найти правильный ответ. Для форматирования текста программ используйте кнопку код.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Для флуда, просьб выполнить задание, поиска партнёров или исполнителей существуют свои разделы.
  • Если вы заметили несовместимое с правилами сообщение, то можете уведомить об этом модератора раздела нажав кнопку Репорт у соответствующего сообщения.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема »


 




[ Время генерации скрипта: 0.0429 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.