Лирическое отступление:
Настя писал(а):В общем, Simplyman, опишите алгоритм словами "если - то".
Если ваш алгоритм будет логически правильным,
то, вероятно, он будет реализован в программе приемника.
Этот проэкт - моя первая самоделка на МК, следовательно знаний и опыта работы с подобными микросхемами у меня еще мало. В процессе сборки сего тюнера, пытаясь найти ответ на вопрос - "чем отличается МК от микропроцессора (МП)?", - я активно читал публикации журнала "Радио", посвященные компьютерам. Ответ на свой вопрос я нашол, более того осознал принципы действия и МК и МП. Сейчас же пытаюсь освоить программирование по тем же статьям. Исходя из вышесказанного, приготовтесь к тому, что в описании алгоритма будет бред
Настя писал(а):Кроме этого, в уточнение сказанному вами,
возможно найдется станция, которая работает на частоте 108,00 МГц .
У нас - врятли. Как я уже сказал, верх - 107.9 МГц. Сомневаюсь, что соседство станций на частотах 107.9 и 108 Будет удачным.
К делу:
Настя писал(а):Мой вариант: перебирать каналы между каналами с частотами
108,00 и 65,00 МГц. Если нужно добавить новый канал
- крайний канал перестраивается на нужную частоту
и каналы снова вручную "обрамляются"
значениями 108,00 и 65,00 МГц. Вот как-то так.
И еще раз повторюсь, что у нас верх 107.9 МГц. Если я правильно понял, то, чтоб спрятать при переборе свободные ячейки, вы предлагаете создать еще одну с бесполезной в Киеве (и не только) частотой 108 МГц.
Мои варианты алгоритма:
1. Глобальный, предпочтительный (назван глобальным, потому что предполагает полное изменение управляющей программы).
При первом включении на индикаторе отображается просто "Р" (режим "Работа") и значение частоты, соответствующее нижнему пределу диапазона, который принимает тюнер. В этом режиме он работает, как самый обычный приемник, т.е. органами управления плавно перестраивается частота по всему диапазону. Настроились на станцию, которую хотим, например 96.8, слушаем и наслаждаемся. Надоело слушать - выключили тюнер. Включаем снова - тюнер уже настроен на 96.8. На индикаторе - "Р 96.8". Если в этом режиме нажать и удерживать более 1с кнопку энкодера (или определенную кнопку на пульте ДУ), то частота будет внесена в первую свободную ячейку памяти. При этом на индикаторе кратковременно отобразится "П01 96.8" ("П" - режим работы "Память", "01" - номер ячейки памяти, "96.8" - значение частоты),после чего тюнер снова перейдет в режим "Р". Если в последнем режиме кратковременно нажать кнопку энкодера (или соответствующую кнопку на пульте ДУ), то на индикаторе будет отображатся "П01 96.8", что сообщит нам о переходе в режим "П". Т.к. у нас занята на данный момент только одна ячейка памяти, перебор работать не будет, ибо выбирать неизчего. Если ячеек с сохраненными пользователем данными больше одной, то перебор работает. Чтобы удалить ячейку, нужно нажать и удерживать более 1с кнопку энкодера в режиме "П".
В управляющую программу со стороны ПК добавить ползунок со шкалой настройки и возможность вносить в ее (программы) поля частоты, на которую тюнер настроен в данный момент. При "прогуливании" по полям программы, содержащим частоты станций, тюнер автоматически переходит в режим "П" и запоминает выданные компьютером настройки. При настройке тюнера любыми органами управления кроме компьютера, тюнер должен сообщать приложению FM.exe значение частоты, на которое его настроили (конечно же при условии подключения тюнера к ПК), при этом приложение должно отобразить эту частоту.
2. Просто второй
Режимы работы - "Р" и "Н". Так же, как и в уже существующих прошивках.
При первом включении на индикаторе отображается "Р01 100.0". Перебор не работает, т.к. неизчего выбирать. Коротким нажатием кнопки энкодера (или соответствующей кнопки на пульте ДУ) переходим в режим "Н" и органами управления выставляем нужную нам частоту. По истечении определенного промежутка времени (при условии, что не поступило никаких сигналов от органов управления), тюнер автоматически перейдет в режим "Р", при этом установленное значение частоты запишется в эту ячейку. Если нажать и удерживать более 1с кнопку энкодера (или нажать соответствующей кнопки на пульте ДУ), то на индикаторе отобразится "Р02 100.0". Т.е. в перебор добавится вторая ячейка. Выставляем нужное значение частоты описанным выше образом. Теперь у нас включается перебор между первой и второй ячейкой. Таким же образом продолжаем дальнейшую настройку тюнера. Короткое нажатие энкодера в режиме "Н" - выход в "Р", нажатие более 1с в этом же режиме - удаление ячейки.
Программа со стороны ПК - без изменений.
PS: извините за много букв)