Портал для радиолюбителей и разработчиков электроники · с 2003 годаРеклама на сайте
Найти компонент, схему или даташит

Даташиты, справочник отечественных приборов, схемы с разбором и живой форум

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

 
Опции темы

USB коннектор на AVR

Непрочитано 01.04.2012, 22:12  
arav
Прохожий
 
Регистрация: 23.12.2009
Сообщений: 6
Сказал спасибо: 4
Сказали Спасибо 3 раз(а) в 2 сообщении(ях)
arav на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от Godzilla82 Посмотреть сообщение
Лучше же в прерывании:
Если используем прерывания, то возникает неопределенность количества циклов перед входом в прерывание (команда, на которой прервались, может быть 1-3х тактовой), если ждем на цикле whlie(1).
Чтобы задержка входа в прерывание всегда была стабильной, надо погружать проц в сон. Например:
PHP код:
  for( ; ; ){
    set_sleep_mode(SLEEP_MODE_IDLE);
    sleep_mode();
  } 
Тогда задержка обработки прерывания из состояния сна всегда будет стабильной и не будет дрожания фронтов выходного сигнала. Но задержка просыпания занимает кучу дополнительных тактов, поэтому вряд ли подойдет в этом случае.
Реклама:
arav вне форума  
Непрочитано 02.04.2012, 01:42  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: USB коннектор на AVR

Сообщение от arav Посмотреть сообщение
Если используем прерывания, то возникает неопределенность количества циклов перед входом в прерывание (команда, на которой прервались, может быть 1-3х тактовой)...
Если уж мы используем прерывание, то у нас проц с тактовой под 200 МГц. И джиттер в ~10 нс нам погоды не сделает.
Godzilla82 вне форума  
Непрочитано 02.04.2012, 10:55  
a-fisher
Прописка
 
Аватар для a-fisher
 
Регистрация: 15.11.2007
Адрес: СПБ
Сообщений: 214
Сказал спасибо: 37
Сказали Спасибо 42 раз(а) в 34 сообщении(ях)
a-fisher на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от Godzilla82 Посмотреть сообщение
Если уж мы используем прерывание, то у нас проц с тактовой под 200 МГц. И джиттер в ~10 нс нам погоды не сделает.
Это точно. Зато интервал будет жестким. Вот только цикл ожидания в прерывании - некрасиво как-то... Лучше, чтобы прерывание успевало отработать до следующего вызова.

P.S. посмотрел семейство AVR - на таких частотах (до 200 МГц) могут работать AVR32, восмибитки - только до 20.

Последний раз редактировалось a-fisher; 02.04.2012 в 13:52.
a-fisher вне форума  
Непрочитано 02.04.2012, 16:44  
slavik.ksu
Частый гость
 
Регистрация: 20.02.2012
Сообщений: 30
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
slavik.ksu на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Под 200МГц мы разогнать не сможем, так что этот вариант мне похоже не подходит ...
slavik.ksu вне форума  
Непрочитано 02.04.2012, 17:05  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от a-fisher Посмотреть сообщение
P.S. посмотрел семейство AVR - на таких частотах (до 200 МГц) могут работать AVR32
Сообщение от omercury Посмотреть сообщение
Ну, есть же ещё и 32битные. Пошустрее...
............................
omercury вне форума  
Непрочитано 02.04.2012, 17:11  
a-fisher
Прописка
 
Аватар для a-fisher
 
Регистрация: 15.11.2007
Адрес: СПБ
Сообщений: 214
Сказал спасибо: 37
Сказали Спасибо 42 раз(а) в 34 сообщении(ях)
a-fisher на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Тогда, IMHO 2 пути:
1. Снижать требование максимальной частоты сигнала хотя бы в 10 раз.
2. Использовать внешний регистр-защелку.
a-fisher вне форума  
Непрочитано 02.04.2012, 19:15  
omercury
Почётный гражданин KAZUS.RUN
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,487
Сказал спасибо: 30
Сказали Спасибо 3,070 раз(а) в 2,011 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Сообщение от a-fisher Посмотреть сообщение
Тогда, IMHO 2 пути
А начиналось с чего?
omercury вне форума  
Непрочитано 02.04.2012, 21:14  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: USB коннектор на AVR

Сообщение от omercury Посмотреть сообщение
А начиналось с чего?
Ну ему сразу сказали, что при таких скоростях на таких камнях надо использовать логику.
Godzilla82 вне форума  
Непрочитано 05.04.2012, 11:02  
slavik.ksu
Частый гость
 
Регистрация: 20.02.2012
Сообщений: 30
Сказал спасибо: 9
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
slavik.ksu на пути к лучшему
По умолчанию Re: USB коннектор на AVR

Все таки начал реализовывать идею Someone на Си.
Хочу кнопку не в прерывании обрабатывать, а просто в главном цикле опрашивать нет ли нажатия, на ассемблере это команда SBIC (SBIS). А на Си это как лучше написать? я сделал так
#define MASKA 0b00000100 // маска для кнопки, он на PB2 выводе.
while(1)
{
a=VHOD_PIN;
VIHOD_PORT = a;
a = a & MASKA;
if (a!=4) выводе
{
a++; \\здесь задержка на 666нс
}
}
не ругайтесь сильно Си только начал изучать, понимаю что вопрос не сюда, но уж чтоб не отходить далеко от темы
slavik.ksu вне форума  
Непрочитано 06.04.2012, 00:21  
Godzilla82
Почётный гражданин KAZUS.RUN
 
Регистрация: 29.10.2006
Сообщений: 1,449
Сказал спасибо: 99
Сказали Спасибо 318 раз(а) в 234 сообщении(ях)
Godzilla82 на пути к лучшему
Сообщение Re: USB коннектор на AVR

Сообщение от slavik.ksu Посмотреть сообщение
Все таки начал реализовывать идею Someone на Си.
Хочу кнопку не в прерывании обрабатывать, а просто в главном цикле опрашивать
Тогда это идея не Someone, а ваша.

На ТЗ, я так понимаю, положили.

Чтобы правильно передавать состояние входов - смотрите пост 150.

Чтобы определить нажатие кнопки в главном цикле:

PHP код:
 
#define BUTTON 0b00000100
...
begin:
tmp = PINB;
PORTD = tmp;

if((tmp & BUTTON) == 0) {
                                   // ну, пусть здесь будет задержка
                           }
goto begin; 
В таком случае задержка будет вноситься всегда, пока нажата кнопка.
Никакой обработки дребезга и т.д...
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, время: 13:46.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.