FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Пятница, 09.12.2016, 10:44
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 2 из 2«12
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » включение-отключение плат в зависимости от режима программы (не могу понять как такое сделать.)
включение-отключение плат в зависимости от режима программы
DWD Дата: Понедельник, 22.02.2016, 23:40 | Сообщение # 16
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
"Если бы программисты строили дома, то первый залетевший дятел разрушил бы цивилизацию". :)

Это я к тому, что написание программы с учётом отключения части кода ещё больше усугубит сложившуюся ситуацию с памятью программ Ардуино.
Ведь уже отмечалось, что буквально несколько нарисованных блоков прилично увеличивают объём скомпилированного кода. Та же самая программа, но написанная на ассемблере занимает не в пример меньше места.

В итоге имеем кучу кода, из которого работает только кая-то часть. Остальная часть тупо занимает место.

Может нужно сменить парадигму и рисовать программу так, что бы, наоборот, уменьшить число неработающих в данный момент времени блоков? Строить схему так, что бы каждый блок был задействован в нескольких функциях.

Скажем, SirYorik хочет сделать три разные функции:
1 - стабилизация напряжения, 2 - стабилизация тока, 3 - зарядка аккумулятра.
И он что, собирается рисовать три независимых куска кода?..

Но чем отличаются эти функции?
Только названием (напряжение или ток) и исходными-конечными величинами (18В или 5А). Внутри же МК они обрабатываются одинаково: на вход подаются цифровые сигналы 0/1 или аналоговые 0...1023 и на выходах выставляются либо цифровые сигналы 0/1, либо аналоговые 0...255.
Суть же обработки одинакова - получив сигнал, сравнить с заданным и при несоответствии выработать сигнал ошибки для корректировки параметра.

Получается, что нужно создать один общий функциональный блок обработки и несколько блоков согласования. Для измерения напряжения входной сигнал преобразовать из 0...18В в 0...1023, а для измерения тока - из 0...5А в 0...1023. Да на дисплей выводить значения, переключая только размерность - напряжение или ток.

Получится искомое - ненужные в данный момент куски кода не будут обрабатываться, потому что их нет.

Как-то так...




Сообщение отредактировал DWD - Понедельник, 22.02.2016, 23:43
 
Олег Дата: Понедельник, 22.02.2016, 23:50 | Сообщение # 17
Гуру
Группа: Проверенные
Сообщений: 730
Награды: 20
Репутация: 15
Статус: Offline
Не все так однозначно, похоже объем памяти зависит от того где этот блок используется. Сжимал один проект, у меня было довольно много блоков дисплея раскидано, стал менять, где возможно, на мультиплексоры. Где-то объем кода сокращался, а где-то почти не менялся, закономерности так и не выявил, да и не до того было.
 
SirYorik Дата: Вторник, 23.02.2016, 05:48 | Сообщение # 18
Лейтенант
Группа: Проверенные
Сообщений: 119
Награды: 2
Репутация: 0
Статус: Offline
ну, то был просто пример для иллюстрации.
представьте, что у вас сложный проект на ATMega2560  с парой сотен плат, на текущий момент МК будет маслать все 200 плат и все юзерблоки каждый проход главного цикла.


Сообщение отредактировал SirYorik - Вторник, 23.02.2016, 08:12
 
DWD Дата: Вторник, 23.02.2016, 09:31 | Сообщение # 19
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
200 плат? Не представляю.
С трудом заставляю себя хоть некотороые фрагменты схемы создавать на отдельной плате.
А так, в основном, всё на одной плате делаю... biggrin




Сообщение отредактировал DWD - Вторник, 23.02.2016, 09:34
 
SirYorik Дата: Вторник, 23.02.2016, 09:53 | Сообщение # 20
Лейтенант
Группа: Проверенные
Сообщений: 119
Награды: 2
Репутация: 0
Статус: Offline
Цитата DWD ()
Не представляю.
на полсотни уже видел здесь
 
Олег Дата: Вторник, 23.02.2016, 10:43 | Сообщение # 21
Гуру
Группа: Проверенные
Сообщений: 730
Награды: 20
Репутация: 15
Статус: Offline
Чем больше дробишь, тем легче разбираться потом, так-как много переменных с осмысленными названиями, да и названия плат говорят сами за себя. А в случае одной платы придется ходить по-схеме и вспоминать алгоритмы, у меня это плохо получается, проще по новой написать smile .
Сейчас у меня проект на UNO 16 плат и это при том что использую больше десяти пользовательских блоков. Второй на меге в разработке, там наверно к сорока в итоге выйдет.
 
Naladchik Дата: Вторник, 23.02.2016, 19:31 | Сообщение # 22
Лейтенант
Группа: Проверенные
Сообщений: 116
Награды: 0
Репутация: 0
Статус: Offline
Цитата SirYorik ()
представьте, что у вас сложный проект на ATMega2560  с парой сотен плат, на текущий момент МК будет маслать все 200 плат и все юзерблоки каждый проход главного цикла.

+100500


Предпочитаю Portable версию.
 
Форум » Основной » Спросить у знатоков » включение-отключение плат в зависимости от режима программы (не могу понять как такое сделать.)
Страница 2 из 2«12
Поиск:

FLProg © 2016
Яндекс.Метрика