Свежие обсуждения
Микроконтроллеры

Ликбез по программированию PIC

1 49 99

Zandy: Предлагаю все-таки не "распыляться". Можно предложить еще кучу вариантов, и долго обсуждать, как лучше, как хуже.

Ну и какое нахрен программирование без внятно сформулированного ТЗ? Сделай то не знаю что? А потом ковыряться в своем же г****, пардон, коде, выискивая баги. У нас что, соревнование на скорость? Тогда извините, я пас!

Zandy: Каким образом можно организовать подсчет, используя прерывания по входному сигналу, как предлагал Splav56

Это можно сделать, но это не лучший вариант, т.к. для многоканальной действительно нужно будет задать приоритеты.

 

Splav56: Хорошо, давайте откажемся от полного погасания индикатора. Пусть будет так:
Я со всем согласен, лишь бы побыстрее начать, а то меня уже скоро с работы выгонят.
Предлагаю еще раз переписать задание полностью, чтобы все было сконцентрировано в одном месте. Рисование принципиальной схемы могу взять "на себя".

 

Splav56: Ну и какое нахрен программирование без внятно сформулированного ТЗ?
Так и я о том же. Поэтому и предлагаю не разводить демократию, а принять "волевое" решение по постановке задачи. Ну как в задачнике. Мы же не обсуждаем условие задачи, хотя пути решения могут быть разные.
Изначально я и предлагал picmaniacу это сделать, не потому, что мне или вам, например лень, а именно потому, что только он за условием задачи сразу видит ее решение и может корректировать условие для лучшей удобоваримости, "учебности" и наглядности.

 

Zandy : демократия более уместна ... или ... "волевым" решением
Так всё таки демократия или единоначалие? В любом случае нужен "Президент", он же куратор ветки. Splav56 отказывается а зря.
Splav56: соревнование на скорость? Вроде нет.
Zandy: лишь бы побыстрее начать "Кто мешает тебе выдумать порох непромокаемый?" (с) К. Прутков. Начинайте и рассказывайте о достигнутых успехах. Лоцман более не нужен, уже хорошо разбираетесь сами.
он за условием задачи сразу видит ее решение Дык я и хочу чтоб все так научились!

 

ТЕХЗАДАНИЕ № 4 (исправленное)

1. Устройство предназначено для контроля частоты вращения объекта и отклонения этой частоты от номинального значения с выводом результатов контроля на визуальный индикатор (светодиод, лампа накаливания).
2. Количество каналов контроля - до 4-х.
3. Номинальная частота вращения - 25 Гц (снижена для небольшого усложнения).
4. При номинальной частоте вращения +/- 5% индикатор постоянно светится.
5. Отклик на изменение частоты:
- в пределах от +/-5% до +/- 10% -индикатор мигает с частотой 0,3 Гц.
- в пределах от +/- 10% и ниже - индикатор мигает с частотой 1Гц.
6. Входной сигнал: импульсная последовательность положительной полярности уровня ТТЛ и скважностью 0,1.
7. Предусмотреть один канал управления для отключения внешних устройств, при снижении контролируемого параметра на величину, большую +/- 10%.
8. Распиновка: RB4-RB7 входы, RB0-RB3 светодиоды, RA0 - выход.

 

Splav56: появилась "горизонтальная прокрутка" Исправьте, пожалуйста, пока это возможно...
Спасибо!

 

Splav56: У нас что, соревнование на скорость?
Никакого соревнования на скорость. Я про другое. Я про скорость продвижения на пути изучения программирования. Про рациональность распределения времени, отведенного на различные этапы постановки и решения задачи. Несмотря на то, что у всех у нас имеется какой-то опыт и знания в различных областях, мы приняли условия игры и сели за учебные парты. А в школе всегда есть учитель и ученики. Учитель следит за тем, чтобы время, отведенное на урок расходовалось рационально. Все отклонения от генеральной линии - факультатив - во внеучебное время.
picmaniac: Так всё таки демократия или единоначалие?
Я за единоначалие на этапе постановки задачи и за демократию в процессе ее решения.

 

Splav56: на визуальный индикатор на индикаторы в количестве 4 штуки, и куда подключенные (+ или общий)
при снижении контролируемого параметра изменении, а не снижении
Скважность мигания - ? Активный уровень на выходе (0/1) - ? Как реагировать на помехи по входу - ? Допустимый диапазон частот по входу, в котором устройство должно правильно работать - ?

Пожелание: не торопитесь! Перед тем, как запостить техзадание сюда, прочтите его сами "глазами новичка". Задайте себе те вопросы, которые задал бы впервые видящий его человек. И сразу сможете на них ответить, не дожидаясь моих замечаний И рекомендую просмотреть ещё раз моё техзадание № 3 как возможный образец.
Дело в том, что с составлением техзаданий я по работе связан. Достаточно серьёзных техзаданий. Кое-какой опыт есть. При составлении ТЗ следует учесть как можно больше деталей, чтоб иметь потом возможность свалить вину на исполнителя. Ничего "очевидного" нет, следует расписывать каждую мелочь. А если чего-то не предусмотрел - сам виноват, и понесёшь заслуженную кару. Поэтому осмелюсь поставить своё творение в пример. Внимание к деталям, к мелочам - очень важно в данном случае.

 

Мне все-таки непонятно по поводу каналов контроля, а точнее п.7. Сигнал на RA0 - общий. Он формируется по логике "И" или "ИЛИ"? А также, какова полярность этого сигнала?
Еще я бы добавил, что при отсутствии входного сигнала (такое ведь тоже может быть) индикаторы не горят.
И еще. Какова должна быть сама погрешность измерения? Например +/- 5%. А допустимо ли 5.5% или 4.3%. Может лучше написать, например +/- 4-6%? Ведь от этого будет зависеть разрядность нашего счетчика.

 

Splav56: в пределах от +/- 10% и ниже - индикатор мигает с частотой 1Гц.
Я вот что подумал. Если мы будем находиться в "вечном" цикле ожидания импульса от какого-либо одного датчика, а этот импульс так и не появится? Надо ведь предусмотреть выход из этого состояния. Т. е организовавать специальный счетчик времени ожидания. А сколько времени мы должны ждать? Или все-таки отсутствие сигнала - это не наш случай и его мы обрабатывать не будем?