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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Индикатор импульсных помех, Маленкий переносной с ЖКИ 
:(
    Опции темы
jimmi
Дата 31.3.2005, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



smile

Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:26
PM MAIL   Вверх
PILOT
Дата 31.3.2005, 18:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

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



Я рекомендую сделать это на ПЛИС.
У меня есть счетчик импульсов (отлов глитчей) но схему найти не смог smile
Смысл там прост:
на входе резистор через диод на землю, сигнал берем между резистором и диодом, на вход плис.
Далее, в ПЛИС реализован счетчик (8 триггеров), и преобразователь числа в Семисегментный код.
Итог, прикасаюсь к отлаживаемой схеме и жду набежит чтонить или нет.

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
jimmi
Дата 31.3.2005, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



smile

Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:26
PM MAIL   Вверх
PILOT
Дата 31.3.2005, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

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



Никак...
Просто программно в теле прерывания разрешать прерывания (вложенные прерывания получаются).

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
jimmi
Дата 11.7.2005, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



smile

Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:27
PM MAIL   Вверх
PILOT
Дата 11.7.2005, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

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



Если ты подцепил кварц, то считай на здоровье себе время там же (таймер сделай на 1 мс, а там увеличивай 5-ти байтную переменную, на всю жизнь хватит smile ), это я к тому что нафиг еще один контроллер?

СУВ.




--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
jimmi
Дата 12.7.2005, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



smile

Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:28
PM MAIL   Вверх
PILOT
Дата 12.7.2005, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

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



inc не трогает перенос! Будь осторожен!
Во-вторых не стоит прыгать с таблицы прерываний куда-то! Время дорого.
И еще в этом обработчике не стоит проверять переполняемость, лучше сделать так чтобы гарантированно int0 не смог вызваться более 255 раз без выполнения в основном цикле сложения накопленного в прерывании числа к общему числу импульсов.

СУВ.



--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Guest
Дата 12.7.2005, 13:40 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Спасибо за подсказку с inc.
Да, время дорого.
На вход счетчика при несущей радиоимпульса 15 мксек за 1мксек с выхода компаратора поступит 15 импульсов. Время паузы 1/30 мксек.
На все про все в теле main_loop и обработке прерывания у меня иммеется 19 тактов при 20МГц тактовой частоты. Это с учетом сброса флага внешнего прерывания инт0. Вопрос первый, где найти таблицу времени выполнения комманд в тактах? Ну я так понял время входа в прерывание 4 такта и время выполнения reti также 4 такта.
Однопроцессорная система никак не получается, т.к. в теле main_loop
придется еще и переменной таймера заниматься. Ну в Атмега 16 есть возможность подключения 2 кварцев, но там только 16 МГц тактовая.
Итак у меня есть 12 тактов на 32 разрядный счетчик из четырех регистров. Хотя нужно только с младшим регистром успеть. Второй разряд переполняется с в 256 раз меньшей частотой. Это заказчик не заметит. smile
Думаю как это сделать.
  Вверх
jimmi
Дата 12.7.2005, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



smile

Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:28
PM MAIL   Вверх
jimmi
Дата 12.7.2005, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



smile

Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:29
PM MAIL   Вверх
PILOT
Дата 12.7.2005, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

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



Еще раз:

1) Начинай обработку сразу в таблице прерываний, никуда не прыгай. Ты же не используешь других прерываний.
2) время выполнения каждой команды (в тактах) есть например в даташите на мегу128 (гарантированно), в самом конце документа (почти) есть таблица инструкций, последний столбик тебя заинтересует.
3) если за 1 мкс приходит 15 импульсов, то гарантированно ничего не получится хорошего и второй контроллер тебя тоже не спасет. Можно сделать так.
Снаружи поставить быстрый счетчик двоичный (который поделит частоту входных сигналов в 256 раз например, или на меньше), его выход на вход int0 тогда ты гарантированно все подсчитаешь.

По поводу рейтинга тебе нужно набрать 100 сообщений по моему smile т.е. пока никак smile Забей.

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
jimmi
Дата 12.7.2005, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



smile

Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:29
PM MAIL   Вверх
jimmi
Дата 12.7.2005, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



smile

Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:30
PM MAIL   Вверх
PILOT
Дата 12.7.2005, 19:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


производство
****


Профиль
Группа: Модератор
Сообщений: 2724
Регистрация: 4.4.2002
Где: москва

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



Если тебе принципиален каждый импульс, то придется использовать счетчик с последовательным считыванием (я правда не пользовал их).
Если же точности в +-8 импульсов достаточно, то можно сделать так:

Поставь быстрый счетчик, который считает до 16-ти и меняет на выходе состояние (отлавливаем фронт), как только фронт изменился: в контроллере к числу +16 импульсов. Причем погрешность у тебя не набегает, а все время работы остается неизменной, равной по сумме 16-ти.

СУВ.


--------------------
тут могла быть Ваша реклама...
PM MAIL WWW ICQ   Вверх
Страницы: (3) Все [1] 2 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)"
PILOT ManiaK
UniBomb Mazzi

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


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

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

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


 




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


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

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