Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 23.03.2012, 15:11  
Someone
Гражданин KAZUS.RU
 
Регистрация: 16.06.2005
Сообщений: 944
Сказал спасибо: 25
Сказали Спасибо 174 раз(а) в 123 сообщении(ях)
Someone на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от Hives Посмотреть сообщение
но теперь добавьте антидребезг
Читаем описание схемки: RC между кнопкой и входом INT0.
Реклама:
Someone вне форума  
Непрочитано 23.03.2012, 16:51  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от Someone Посмотреть сообщение
Так же можно сказать тини15, 10, 11 (к ним-то кварц подключить не проблема,
Улыбнула 11-я и насмешила 15-я.
К последней его подключить вообще невозможно.
А по быстродействию годится разве только 10-я не пределе.

Схему выше уже описАл. С небольшим отличием - XOR нужен с инверсией. А вот МК можно приспособить для генерации времени пропадания сигнала и антидребезга. Это если сигналы D+ D- однонаправленные.
omercury вне форума  
Непрочитано 23.03.2012, 18:00  
Hives
Гражданин KAZUS.RU
 
Регистрация: 25.11.2010
Сообщений: 516
Сказал спасибо: 1
Сказали Спасибо 126 раз(а) в 109 сообщении(ях)
Hives на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Someone убого, но зачет

PS полная программная эмуляция MAX6816 (антидребезг), на будущее
ничего сложного даже для начинающих
Код:
if (KeyPressed())
  {
  if (KeyTimer ‹ KEY_TIMEOUT) { if (++KeyTimer ›= KEY_TIMEOUT) KeyFlag = 1; }
  }
else
  {
  if (KeyTimer › 0) { if (--KeyTimer == 0) KeyFlag = 0; }
  }
Hives вне форума  
Сказали "Спасибо" Hives
slavik.ksu (23.03.2012)
Непрочитано 23.03.2012, 18:53  
Prime
Прописка
 
Регистрация: 11.06.2005
Сообщений: 266
Сказал спасибо: 9
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
Prime на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от Someone Посмотреть сообщение
Hives,
Prime,
Этого на быстрой логике так просто не сделаешь. Конечно можно посчитать и нагородить RC цепей, с корпусом-другим дополнительной логики нарисовать схему управления, а потом обнаружить, что таких номиналов в рядах нет, собрать на тех что есть, и получить несоответствие временного интервала заданному. Точность-то в техзадании указана до такта - 1/12МГц .
На логике и счётчиках делается легко...
__________________
Канал в Telegram об МК AVR @EasyAVR
Prime вне форума  
Непрочитано 23.03.2012, 19:42  
slavik.ksu
Частый гость
 
Регистрация: 20.02.2012
Сообщений: 30
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
slavik.ksu на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от ut1wpr Посмотреть сообщение
Разве так нельзя?
Ан нет, МК подавай. Хорошо еще, что тип не навязывают. Ну зачем он?
Компания с AVRками работеат потому что и это специально "легкое" тестовое задание, чтобы посмотреть на каком уровне я знаю МК. поэтому ничего не могу поделать
Цитата:
Основная программа (инициализацию не пишу, и тривиально, и надо же учащемуся что-то самому сделать ) проста до безобразия:
Код:
main:
in R15, PIND
out PORTB, R15
rjmp main


1такт ин, 1 такт оут, 3 такта переход. 5 тактов по 125нс даст 625 нс, что меньше требуемых 1 мкс. Изменение обоих каналов одновременное. В прерывании просто делаем паузу в 66 мкс
Идея хорошая, но я пошел маленько другим путем :изменение на входах D+ и D- сделал по прерыванию INT0 и INT1. На нажатие реагирует таймер, после чего он через 20мс проверяет "действительно ли это было нажатие" (то есть устранил дребезг) и далее делаю задержку по этому же таймеру 6мкс, запрещяя внешние прерывания. То есть главный цикл у меня свободен, и там можно что нибудь делать паралельно.
Только вот проблемка еще одна есть: я как и вы в прерывании копирую прот D в порт В, а мне надо только два вывода! то есть желательно наложить маску,чтобы не повредить сигнал на других в порту В...! пока еще не сообразил как это лучше сделать:
in r16,pinD
ori r16,maska1
in r17,pinB
ori r17,maska2
ori r17,r16
out PortB,r17
Что то вроде этого, только вместо "ori" могут быть " andi " , " eor "...
что имею на данный момент прилагаю
Вложения:
Тип файла: rar USB_konnektor - копия (2).rar (6.0 Кб, 46 просмотров)
slavik.ksu вне форума  
Непрочитано 23.03.2012, 22:17  
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: USB коннектор на AVR

Антидребезг делается немного по-другому. Случай для однократного срабатывания.

1. Ждём когда нажмут кнопку.
2. Делаем нужные действия.
3. Ждём 100 мс.
4. Ждём, когда кнопку отпустят.
5. Переход к 1 пункту.

Вход в прерывание - 4 такта, выход - 4 такта. Дальше продолжать?

Изменение только нужных битов:
PHP код:

MASK 
0b00000011;
PORTD = (PORTD & ~MASK) | (PINB MASK); 
P.S. Выходной порт D, входной порт B.
Godzilla82 вне форума  
Сказали "Спасибо" Godzilla82
slavik.ksu (24.03.2012)
Непрочитано 23.03.2012, 22:29  
Prime
Прописка
 
Регистрация: 11.06.2005
Сообщений: 266
Сказал спасибо: 9
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
Prime на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Оба случая антидребезга, описанного Godzilla82 и slavik.ksu - есть псевдоантидребезг. В случае Godzilla82 - даже не понял, где сам антидребезг.
Предлагаю такой алгоритм
1. Основной цикл крутится сам по себе
2. Срабатывание кнопки - либо на прерывание, либо в прерывании по таймеру опрашивать состояние и запоминать (например, если у вас крутится системный таймер 1 мс), либо также в основном цикле опрашивать состояние и запоминать.
3. При изменении состояния (путём сравнения текущего и предыдущего сохранённого) - запускать какой нибудь таймер, скажем, на 50 мс (можете на 100 мс, в зависимости от того, какое время спокойствия считать реальным нажатием).
4. По истечению таймаута - выставлять флаг или сразу на месте обрабатывать кнопку.
Таким образом, эта модель подразумевает обработку кнопки по истечению заданного времени ПОСЛЕ ТОГО, КАК ДРЕБЕЗГ ЗАКОНЧИЛСЯ. Если дребезг будет продолжительным - таймер будет перезапускаться каждый раз, когда состояние будет меняться, не давая дойти до обработчика.
Вариант, описанный вами, slavik.ksu - делает с постоянным упорством один наш "младший научный сотрудник", за что и получает постоянно выговор с моей стороны.
__________________
Канал в Telegram об МК AVR @EasyAVR

Последний раз редактировалось Prime; 23.03.2012 в 22:34.
Prime вне форума  
Сказали "Спасибо" Prime
slavik.ksu (24.03.2012)
Непрочитано 23.03.2012, 22:36  
Prime
Прописка
 
Регистрация: 11.06.2005
Сообщений: 266
Сказал спасибо: 9
Сказали Спасибо 13 раз(а) в 12 сообщении(ях)
Prime на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от Godzilla82 Посмотреть сообщение
PHP код:

MASK 
0b00000011;
PORTD = (PORTD & ~MASK) | (PINB MASK); 
P.S. Выходной порт D, входной порт B.
Вместо вашей конструкции правильней

PORTD = (PIND & ~MASK) | (PINB & MASK);
__________________
Канал в Telegram об МК AVR @EasyAVR
Prime вне форума  
Непрочитано 23.03.2012, 22:43  
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
Godzilla82 на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от Prime Посмотреть сообщение
Таким образом, эта модель подразумевает обработку кнопки по истечению заданного времени ПОСЛЕ ТОГО, КАК ДРЕБЕЗГ ЗАКОНЧИЛСЯ. Если дребезг будет продолжительным - таймер будет перезапускаться каждый раз, когда состояние будет меняться, не давая дойти до обработчика.
Зачем ждать, когда закончится дребезг? Состояние кнопки просто так не меняется.
Состояние меняется только тогда, когда её нажали. А раз нажали - сразу нужно выполнить действия.

Здесь предполагается, что "действия" - значительно меньше 100 мс.

После выполнения действий нельзя сразу же делать проверку состояния кнопки. Так как там ещё может не закончился дребезг. Поэтому ждём 100 мс. Через 100 мс дребезг гарантированно закончится.

А далее можно снова проверять кнопку. Но если нам надо на одно нажатие кнопки однократно выполнить действия, нам нужно подождать, когда кнопку отпустят.

После отпускания можно ещё сделать задержку на дребезг.
Godzilla82 вне форума  
Непрочитано 23.03.2012, 22:46  
Godzilla82
Почётный гражданин KAZUS.RU
 
Регистрация: 29.10.2006
Сообщений: 1,446
Сказал спасибо: 99
Сказали Спасибо 317 раз(а) в 233 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: USB коннектор на AVR

Сообщение от Prime Посмотреть сообщение
Вместо вашей конструкции правильней

PORTD = (PIND & ~MASK) | (PINB & MASK);
Нет. Правильно именно PORT.

Не забывайте, вывод может быть сконфигурирован как вход с подтяжкой.
Godzilla82 вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
usb джойстик на avr bobrozub Микроконтроллеры, АЦП, память и т.д 7 14.03.2012 20:24
USB клавиатура + AVR Serdgo96 Микроконтроллеры, АЦП, память и т.д 2 25.02.2010 22:55
USB Коннектор, разпиновка nerozero Информация по радиокомпонентам 2 05.10.2007 14:20
AVR...USB Edd-Layer Микроконтроллеры, АЦП, память и т.д 4 11.04.2007 21:37


Часовой пояс GMT +4, время: 08:42.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot