![]() |
Модераторы: PILOT, ManiaK, Mazzi |
![]() ![]() ![]() |
|
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:26 |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Я рекомендую сделать это на ПЛИС.
У меня есть счетчик импульсов (отлов глитчей) но схему найти не смог ![]() Смысл там прост: на входе резистор через диод на землю, сигнал берем между резистором и диодом, на вход плис. Далее, в ПЛИС реализован счетчик (8 триггеров), и преобразователь числа в Семисегментный код. Итог, прикасаюсь к отлаживаемой схеме и жду набежит чтонить или нет. СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:26 |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Никак...
Просто программно в теле прерывания разрешать прерывания (вложенные прерывания получаются). СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:27 |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Если ты подцепил кварц, то считай на здоровье себе время там же (таймер сделай на 1 мс, а там увеличивай 5-ти байтную переменную, на всю жизнь хватит
![]() СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:28 |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
inc не трогает перенос! Будь осторожен!
Во-вторых не стоит прыгать с таблицы прерываний куда-то! Время дорого. И еще в этом обработчике не стоит проверять переполняемость, лучше сделать так чтобы гарантированно int0 не смог вызваться более 255 раз без выполнения в основном цикле сложения накопленного в прерывании числа к общему числу импульсов. СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
Guest |
|
|||
Unregistered |
Спасибо за подсказку с inc.
Да, время дорого. На вход счетчика при несущей радиоимпульса 15 мксек за 1мксек с выхода компаратора поступит 15 импульсов. Время паузы 1/30 мксек. На все про все в теле main_loop и обработке прерывания у меня иммеется 19 тактов при 20МГц тактовой частоты. Это с учетом сброса флага внешнего прерывания инт0. Вопрос первый, где найти таблицу времени выполнения комманд в тактах? Ну я так понял время входа в прерывание 4 такта и время выполнения reti также 4 такта. Однопроцессорная система никак не получается, т.к. в теле main_loop придется еще и переменной таймера заниматься. Ну в Атмега 16 есть возможность подключения 2 кварцев, но там только 16 МГц тактовая. Итак у меня есть 12 тактов на 32 разрядный счетчик из четырех регистров. Хотя нужно только с младшим регистром успеть. Второй разряд переполняется с в 256 раз меньшей частотой. Это заказчик не заметит. ![]() Думаю как это сделать. |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:28 |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:29 |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Еще раз:
1) Начинай обработку сразу в таблице прерываний, никуда не прыгай. Ты же не используешь других прерываний. 2) время выполнения каждой команды (в тактах) есть например в даташите на мегу128 (гарантированно), в самом конце документа (почти) есть таблица инструкций, последний столбик тебя заинтересует. 3) если за 1 мкс приходит 15 импульсов, то гарантированно ничего не получится хорошего и второй контроллер тебя тоже не спасет. Можно сделать так. Снаружи поставить быстрый счетчик двоичный (который поделит частоту входных сигналов в 256 раз например, или на меньше), его выход на вход int0 тогда ты гарантированно все подсчитаешь. По поводу рейтинга тебе нужно набрать 100 сообщений по моему ![]() ![]() СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:29 |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:30 |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Если тебе принципиален каждый импульс, то придется использовать счетчик с последовательным считыванием (я правда не пользовал их).
Если же точности в +-8 импульсов достаточно, то можно сделать так: Поставь быстрый счетчик, который считает до 16-ти и меняет на выходе состояние (отлавливаем фронт), как только фронт изменился: в контроллере к числу +16 импульсов. Причем погрешность у тебя не набегает, а все время работы остается неизменной, равной по сумме 16-ти. СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:30 |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Все так, только зачем ждать 4мкс? Неопределенность возникла бы если бы ты не считывал Q0-Q3 (т.е. использовал только одну ногу от счетчика, ты говорил что ног у тебя мало), а так все правильно!
Выводить на ЖКИ никто не мешает постоянно в общем цикле, так же как и опрашивать клаву. СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:31 |
|||
|
||||
ManiaK |
|
|||
![]() Homo Sapience ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1145 Регистрация: 3.8.2004 Где: ИУ5-93 Репутация: 2 Всего: 29 |
Это и предлагать не надо - этим надо пользоваться ![]() |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:31 |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Мне то за что спасибо
![]() ![]() СУВ. ЗЫ. Репу ты уже можешь другим менять сам (по-моему). -------------------- тут могла быть Ваша реклама... |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:31 |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 8 Всего: 99 |
jimmi, как ты делал пункты 9 и 10? Если можно то с кусочком схемы, плиз. Можно screenshot
![]() Просто интересно как это реализовано... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:35 |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:36 |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 8 Всего: 99 |
У меня был таймер (процедура обработки прерывания) вот так сделан:
То есть каждый раз попадая сюда, я выключал таймер, засовывал в него новые значения отсчета, потом включал таймер. Если при это глобальная переменная iCtr1ms_g не равна нулю (= кто-то сказал, что надо ждать столько то ms), то из нее вычитаем 1. Больше ничего как видишь не делал, не CLI, не SEI... -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
PILOT |
|
||||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Если случается событие, то устанавливается флаг прерывания и ставится в "очередь" в порядке приоритетов (адресов векторов), обрабатывается как только воявляется возможность (т.е. разрешаются глобально прерывания). СУВ. -------------------- тут могла быть Ваша реклама... |
||||
|
|||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:36 |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
CLI по моему только в UART нужно использовать.
СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 1.8.2005, 18:25 |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
А где ж тут прерывания?
СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:37 |
|||
|
||||
cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 8 Всего: 99 |
А это что такое? -------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
А кто будет SREG сохранять? Дядя Вася?
![]() СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
jimmi |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 122 Регистрация: 20.9.2004 Репутация: 5 Всего: 5 |
![]() Это сообщение отредактировал(а) jimmi - 7.9.2005, 16:37 |
|||
|
||||
PILOT |
|
|||
![]() производство ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2724 Регистрация: 4.4.2002 Где: москва Репутация: 20 Всего: 54 |
Я так понял, что август пора отпусков и фиг кого соберешь
![]() СУВ. -------------------- тут могла быть Ваша реклама... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |