leoniv (leoniv) wrote,
leoniv
leoniv

Categories:

Эх...

DSC_3939_s

Вот плата управления спаяна (картинка кликабельна). Но не хватает самого важного элемента - контроллера.



Никогда на меня не оказывали такого сильного давления, как при агитации перехода на STM32. Какие только аргументы не назывались! "Лох" - это был далеко не самый сильный аргумент. Я тогда отвечал, что пока STM32 нельзя будет купить на рынке, для меня его не существует. Но моя психологическая подготовка плохая, дал слабину, сделал проект на STM32 - блок питания PSL-3406. Для этого проекта контроллер подарил один из убеждавших. Но вот настало время собирать следующий проект. Поскольку имеются готовые наработки ПО, нет смысла переходить на другой контроллер. Я снова заложил STM32, поверив коллегам, которые утверждали, что они есть на рынке. Даже фото прайс-листа мне прислали. И вот я отправился на рынок. Нахожу нужное место, смотрю в прайс, действительно, там есть нужный мне STM32F100C8T6B за 30500 руб., это примерно 3$. Рука, сжимающая в ладони мятые деньги, трясется от волнения. Прошу дать мне эту микросхему. Продавец сухо отвечает: "Нет". А зачем тогда она есть в прайсе? Вопрос эхом переотразился в стенах павильонов "Мир моды" и "Радиомаркет", потом медленно затух, истратив энергию на нагревание материалов отделки стен. Мечта рухнула. И с этим надо как-то жить. Набить морду продавцу было бы неплохо, но это разве что спасет от депрессии, а плату запустить не поможет. Запасной вариант - есть у меня несколько STM32F100C4, подаренных знаменитым ReAl. Возможно, получится впихнуть прошивку младшенького PSL-2401 (без порта USB) в этот кристалл. Основная беда с ОЗУ. Причем тратится оно не по делу, например, для хранения строк меню. Сейчас параметры меню создаются так:

  SetupData = new TParamList(PARS_SETUP);
  //                            Type       Name  Min  Nom  Max
  SetupData->AddItem(new TParam(PT_PRE,   "PrE-",  0,   0,   0)); //PAR_CALL
  SetupData->AddItem(new TParam(PT_PRE,   "PrE-",  1,   1,   1)); //PAR_STOR
  SetupData->AddItem(new TParam(PT_OFFON, " Lc-",  0,   0,   1)); //PAR_LOCK
  SetupData->AddItem(new TParam(PT_OFFON, "trc-",  0,   1,   1)); //PAR_TRC
  //... и так далее


В конструкторе TParam имя параметра копируется в массив в ОЗУ. Надо бы сделать класс TParam шаблонным, имя параметра сделать константой и передавать его как параметр шаблона. Тип параметра тоже некрасиво обрабатывается, длинным case. Нужно сделать абстрактный класс TParam с виртуальными методами, зависящими от типа параметра. От него потом наследовать параметры разных типов. Тогда должно быть что-то типа:

  SetupData = new TParamList(PARS_SETUP);
  //                         Type Name  Min  Nom  Max
  SetupData->AddItem(new TParPre<"PrE-",  0,   0,   0>()); //PAR_CALL
  SetupData->AddItem(new TParPre<"PrE-",  1,   1,   1>()); //PAR_STOR
  SetupData->AddItem(new TParOnf<" Lc-",  0,   0,   1>()); //PAR_LOCK
  SetupData->AddItem(new TParOnf<"trc-",  0,   1,   1>()); //PAR_TRC
  //... и так далее


Но никак не соображу, как это сделать. Т.е. в каждом объекте нужно иметь свое константное имя из нескольких символов и не тратить при этом ОЗУ. Само имя нужно как-то наглядно задавать, например, в строке конструирования объекта, как в этом примере.

Tags: electronics, программирование
Subscribe

  • Путь к рынку

    Это очень долгий путь, поэтому будет длинный пост. Добро пожаловать под кат. 2. Недалеко от дома находится конечная остановка (диспетчерская…

  • Сказка на ночь

  • Охота

    Сегодня все утро перед окном кухни черный кот охотится за белкой. Кот влезает довольно высоко на дерево, а белка по тонким веткам перебирается на…

  • Post a new comment

    Error

    default userpic
    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 42 comments
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →
Previous
← Ctrl ← Alt
Next
Ctrl → Alt →

  • Путь к рынку

    Это очень долгий путь, поэтому будет длинный пост. Добро пожаловать под кат. 2. Недалеко от дома находится конечная остановка (диспетчерская…

  • Сказка на ночь

  • Охота

    Сегодня все утро перед окном кухни черный кот охотится за белкой. Кот влезает довольно высоко на дерево, а белка по тонким веткам перебирается на…