Аппаратный одновибратор в Pic
24.07.2015, 16:03
|
|
|
Прописка
Регистрация: 07.08.2006
Адрес: Оренбург
Сообщений: 176
Сказал спасибо: 39
Сказали Спасибо 83 раз(а) в 32 сообщении(ях)
|
Re: Аппаратный одновибратор в Pic
Сообщение от akegor
|
|
Правильно сформулированный вопрос содержит половину решения.
|
А как правильно ? Я спросил про ОДНОвибратор, а Вы мне начали советовать PWM. Я ж не знал, что для Вас это одно и то же...
Впрочем, вопрос решен - несмотря на лингвистические изъяны....
__________________
Делай что должно - и будь что будет.
Последний раз редактировалось alex6002; 24.07.2015 в 16:11.
|
|
|
|
24.07.2015, 16:46
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
|
Re: Аппаратный одновибратор в Pic
Сообщение от alex6002
|
|
Вот чувствую - есть чего-то очень простое и известное... а никак...
|
Есть!
Вообще-то, варианты есть и попроще, чем использовать еще одно прерывание от еще одного модуля. Лишняя проверка еще одного прерывания - это потеря времени. А ведь можно обойтись и одним таймером. Все очень просто.
Когда наступило прерывание через 40 мкс:
- проверяем состояние пина, (на котором формируется импульс) на =0,
- настраиваем ТОТ ЖЕ САМЫЙ ТАЙМЕР на 20 мкс,
- формируем начало импульса на порту (пин =1, формируется фронт _/- )
- и выходим из прерывания.
При повторном срабатывании прерывания через 20 мкс:
- проверив состояние пина (=1?)
- формируем завершение импульса (спад -\_, пин=0 )
- проверяем, нужно ли нам формировать следующий импульс (для этого проверяем программный флаг разрешения формирования импульсов, выставляемый в основной программе),
- и если да, то переключаем таймер на период 40 - 20 = 20 мкс
. - (если нет, то запрещаем прерывания от этого таймера или выключаем его, если он выключаемый, чтобы не фонило прерываниями. Потом основной в программе не забудем разрешить их или включить таймер, когда потребуются импульсы вновь)
И если разрешено, ждем следующего прерывания через 20 мкс, оно же через 40 мкс от предыдущего начала, всё повторится для след.импульса.
Если текст прерывания довольно длинный и 20 мкс могут истечь до выхода из прерывания, то проверку прерывания от этого таймера дублируем один или несколько раз позднее в тексте прерываний, с таким расчетом, чтобы не выходя из обработчика прерываний, среагировать на истечение 20 мкс, если где-то задержались при выполнении других прерываний.
И очень желательно, чтобы частота МК должна быть выше 4 МГц в несколько раз. Иначе, работа программы будет неэффективной из-за сильного фона прерываний - все-таки, 40 шагов между прерываниями, из которых более 50% - работа в прерывании - эт плохо
Последний раз редактировалось NewWriter; 24.07.2015 в 17:14.
|
|
|
|
24.07.2015, 18:00
|
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
|
Re: Аппаратный одновибратор в Pic
Сообщение от alex6002
|
|
Я спросил про ОДНОвибратор
|
Тут много спрашивают того, что потом оказывается не того.
Сообщение от alex6002
|
|
Я ж не знал, что для Вас это одно и то же...
|
Дык Вы так описали свою хотелку.
Сообщение от alex6002
|
|
А как правильно ?
|
Так, чтобы было понятно не только вопрошающему. Желательно бы и отвечающему понимать вопрос.
Но не переживайте, Вы не одиноки.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
24.07.2015, 19:21
|
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Аппаратный одновибратор в Pic
Сообщение от NewWriter
|
Вообще-то, варианты есть и попроще, чем использовать еще одно прерывание от еще одного модуля. Лишняя проверка еще одного прерывания - это потеря времени. А ведь можно обойтись и одним таймером. Все очень просто.
Когда наступило прерывание через 40 мкс:
- проверяем состояние пина, (на котором формируется импульс) на =0,
- настраиваем ТОТ ЖЕ САМЫЙ ТАЙМЕР на 20 мкс,
- формируем начало импульса на порту (пин =1, формируется фронт _/- )
- и выходим из прерывания.
При повторном срабатывании прерывания через 20 мкс:- проверив состояние пина (=1?)
- формируем завершение импульса (спад -\_, пин=0 )
- проверяем, нужно ли нам формировать следующий импульс (для этого проверяем программный флаг разрешения формирования импульсов, выставляемый в основной программе),
- и если да, то переключаем таймер на период 40 - 20 = 20 мкс
. - (если нет, то запрещаем прерывания от этого таймера или выключаем его, если он выключаемый, чтобы не фонило прерываниями. Потом основной в программе не забудем разрешить их или включить таймер, когда потребуются импульсы вновь)
И если разрешено, ждем следующего прерывания через 20 мкс, оно же через 40 мкс от предыдущего начала, всё повторится для след.импульса.
|
Вот не заценил полёта мысли. Может постарел? Единственное с чем согласен
|
Цитата:
|
|
Лишняя проверка еще одного прерывания - это потеря времени
|
А сколько там модулей уже не суть.
Последний раз редактировалось STM32F0; 24.07.2015 в 19:43.
|
|
|
|
24.07.2015, 19:41
|
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Аппаратный одновибратор в Pic
Сообщение от alex6002
|
|
Если не ерничать - Вы правы конечно... но знал бы кто как неохота с новым процем разбираться.... все новое, все чужое...
|
Спотыкаясь и барахтаясь в подобных задачах времени улетает больше, чем при освоении новых МК. Неохота разбираться с STM32 (а всё равно со временем придётся), попробуйте разобраться с STM8, у них схожая с STM32 периферия, от прародителя STM. Даже для копеечного мелкого STM8 ваша задача плёвая.
Есть вариант освоить периферию новых ПИКов, там и логические ячейки есть, и режим типа 555. Но разбираться, быстрее всего, придётся самому, что опять время. Судя по тырнету, народ не сильно проникся новшествами Микрочипа.
|
|
|
|
24.07.2015, 19:44
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
|
Re: Аппаратный одновибратор в Pic
И что, STM32F0, теперь будем к каждому моему слову цепляться? Ой, ну спасибо, вот уж никак не ожидал такой популярности.
Кстати, там нет ничего неправильного. Вы просто не знакомы с темой вопроса. Занимайтесь лучше STM-ом.
И кстати, я не понял, что вы имели ввиду, выделив мои фразы. Видимо, вам не понятен смысл. Да, значения таймера можно менять как угодно и когда угодно.
Сообщение от STM32F0
|
|
А сколько там модулей уже не суть.
|
Суть, да еще какая! Вы ее просто не уловили  по причине того, что не в теме вопроса
Последний раз редактировалось NewWriter; 24.07.2015 в 19:52.
|
|
|
|
24.07.2015, 20:26
|
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Аппаратный одновибратор в Pic
Сообщение от NewWriter
|
|
Кстати, там нет ничего неправильного.
|
Верю, потому что лень вникать.
Сообщение от NewWriter
|
|
Видимо, вам не понятен смысл. Да, значения таймера можно менять как угодно и когда угодно.
|
Количество прерываний от этого то не уменьшается.
Сообщение от NewWriter
|
|
Вы просто не знакомы с темой вопроса.
|
Хм!
Сообщение от NewWriter
|
|
Занимайтесь лучше STM-ом
|
И ни разу не жалею!
Последний раз редактировалось STM32F0; 24.07.2015 в 20:28.
|
|
|
|
24.07.2015, 21:05
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,481
Сказал спасибо: 396
Сказали Спасибо 2,222 раз(а) в 1,317 сообщении(ях)
|
Re: Аппаратный одновибратор в Pic
Так я тоже перешел на STM, но и старого не забыл и тоже использую.
|
|
|
|
24.07.2015, 22:33
|
|
|
Заблокирован
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
|
Re: Аппаратный одновибратор в Pic
Сообщение от NewWriter
|
|
Так я тоже перешел на STM, но и старого не забыл и тоже использую.
|
Это типа "Я уже перешёл в пятый класс, но уроки третьего всё ещё посещаю!". 
В чём тогда смысл юзать старьё?
|
|
|
|
24.07.2015, 22:44
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
|
Re: Аппаратный одновибратор в Pic
STM32F0, это типа "уже слишком старый чтобы е**ть студенток"
ПИКи и АВР за счёт толстого процесса более дубовые
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:19.
|
|