Страница 1 из 2

Выбор микроконтроллера. ШИМ АЦП Прерывание по порту

СообщениеДобавлено: 15 авг 2021, 21:01
shundrov
Здравствуйте!
Помогите с выбором оптимального микроконтроллера под мою задачу.
Требуется обработать 2 датчика:
1) Датчик положения коленчатого вала (ДПКВ) Здесь требуется делитель импульсов на 2. Рабочие частоты будут в диапазоне от 50 до 500 Гц, да и то не факт, скорее даже меньше.
2) Датчик температуры охлаждающей жидкости (ДТОЖ) Обычный терморезистор. Его показания надо преобразовать в ШИМ
Сделал набросок на основе примера: viewtopic.php?f=18&t=2213&p=32547&hilit=шим+attiny13#p32547 Но меня сильно напрягает в этом варианте то, что сигнал ДПКВ обрабатывается в программе, а хотелось бы чтоб этот самый сигнал вызывал прерывание по порту с дальнейшей его обработкой
Отсюда вопрос: Можно ли корректней реализовать мои хотелки на этом микроконтроллере, или посоветуйте какой другой, где есть аппаратный ШИМ, АЦП и прерывание по порту. Можно как PIC, так и AVR, желательно в восьми пиновом корпусе

Re: Выбор микроконтроллера. ШИМ АЦП Прерывание по порту

СообщениеДобавлено: 16 авг 2021, 04:31
Вячеслав
shundrov писал(а):Помогите с выбором оптимального микроконтроллера под мою задачу.

Делаю так: на имеющимся в наличии МК делаю задачу так, чтобы она меня устраивала по решению. Даже, если этот МК с избытком по пинам и функциям. В IDE, что используешь, есть возможность перейти на другой МК с нужными возможностями безболезненно.

Re: Выбор микроконтроллера. ШИМ АЦП Прерывание по порту

СообщениеДобавлено: 16 авг 2021, 07:38
mim
shundrov писал(а): хотелось бы чтоб этот самый сигнал вызывал прерывание по порту
Что мешает такой хотелке? Определяешь прерывание и переносишь все туда... и смотришь что получилось.

Re: Выбор микроконтроллера. ШИМ АЦП Прерывание по порту

СообщениеДобавлено: 16 авг 2021, 09:31
shundrov
Не знаю, почему не получалось вчера, ночью спать нужно наверное
Переделал с прерыванием, вроде работает. Можно настроить прерывание так, чтобы оно срабатывало только на начало импульса?

Re: Выбор микроконтроллера. ШИМ АЦП Прерывание по порту

СообщениеДобавлено: 16 авг 2021, 09:48
mim
shundrov писал(а):Можно настроить прерывание так, чтобы оно срабатывало только на начало импульса?

Можно... но другое. На другой ноге INT0. При этом ШИМ вывести на другой порт...

Но, зачем?

Re: Выбор микроконтроллера. ШИМ АЦП Прерывание по порту

СообщениеДобавлено: 06 сен 2021, 10:19
олег
XMEGA и система событий

Re: Выбор микроконтроллера. ШИМ АЦП Прерывание по порту

СообщениеДобавлено: 16 сен 2021, 15:45
shundrov
Здравствуйте.
НА фловкод для ПИК был патч, который позволял сделать код меньше. Есть такое для АВР и можно ли его применять в моем случае? Или переделывать на другой микроконтролер? Может можно как-то скромнее сделать, то что у меня получилось
На фото тарировка датчика. Меня интересует диапазон от 40 до 130 градусов
То, что у меня получилось, работает грубо. Надо больше точек, особенно после 80 градусов

Re: Выбор микроконтроллера. ШИМ АЦП Прерывание по порту

СообщениеДобавлено: 16 сен 2021, 21:15
Андрей
shundrov писал(а):Здравствуйте.
НА фловкод для ПИК был патч, который позволял сделать код меньше. Есть такое для АВР и можно ли его применять в моем случае? Или переделывать на другой микроконтролер? Может можно как-то скромнее сделать, то что у меня получилось
На фото тарировка датчика. Меня интересует диапазон от 40 до 130 градусов
То, что у меня получилось, работает грубо. Надо больше точек, особенно после 80 градусов

Здравствуйте я подобные патчи для ФК-5 AVR не встречал сэкономить код можно несколькими способами в том числе как вы делаете заменой то что предлагает ФК на СИ вставки. Можно ещё процентов 10 сэкономить если переделать чтение АЦП на прерывание adc conversion complete в последних правках файлов FCD это прерывание есть. В настройках прерывания выставить делитель Fosc, нужный канал. Поскольку вы хотите АЦП считывать в 8 битном режиме для этого нужно, выравнивание выставить на Left Shift, а в обработчике прерывания данные АЦП 8 бит забрать из регистра ADCH и тут же в обработчике эту переменную разделить на 2, также как это сделано у вас в цикле получится такой код:
FCV_PRESCALER=ADCH;
FCV_PRESCALER=FCV_PRESCALER/2;
Если уж совсем не хватает памяти программ тогда берите МК Attiny25\45\85.

Re: Выбор микроконтроллера. ШИМ АЦП Прерывание по порту

СообщениеДобавлено: 17 сен 2021, 08:07
Максим
Тебе нужно поставить патч на delay.
Тогда будет такой результат компиляции.
JPG_Screen.jpg

Re: Выбор микроконтроллера. ШИМ АЦП Прерывание по порту

СообщениеДобавлено: 17 сен 2021, 13:13
Вячеслав
shundrov писал(а):Меня интересует диапазон от 40 до 130 градусов
То, что у меня получилось, работает грубо. Надо больше точек, особенно после 80 градусов

Как получишь промежуточные точки? Сам будешь тарировать с точностью 3,5 знака? Интерполятор писать?
Деление на 2,4,8...заменяй смещением << , так оно короче для крохоборов.