iamnot 0 26 августа, 2021 Опубликовано 26 августа, 2021 · Жалоба 11 минут назад, jcxz сказал: uint32_t val_tim[2]; static uint32_t val_tim[2] = {0}; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 52 26 августа, 2021 Опубликовано 26 августа, 2021 · Жалоба 1 hour ago, jenya7 said: тогда получается как то по уродски используйте "неиспользованные" регистры типа DMA адреса, или CCR :) изменение которых на таймер не повлияет. только это ещё более уродское решение. 1 hour ago, jenya7 said: я пытаюсь сэкономить, у меня RAM кончается. а сэкономленых 4 байта на таймер спасут отца русской демократии? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 26 августа, 2021 Опубликовано 26 августа, 2021 · Жалоба 2 hours ago, _pv said: а сэкономленых 4 байта на таймер спасут отца русской демократии? (4 байта указатель + 4 байта переменная ) * 10 таймеров это если делать по принципу Eddy_Em. if (TIMx == TIM6) else if (TIMx == TIM7) я не хочу. все эти сравнения влияют на время исполнения. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 26 августа, 2021 Опубликовано 26 августа, 2021 · Жалоба 3 minutes ago, jenya7 said: (4 байта указатель + 4 байта переменная ) * 10 таймеров Можно только переменную. 3 minutes ago, jenya7 said: я не хочу. все эти сравнения влияют на время исполнения. Что-то прямо все по краю: памяти нет, запаса по времени нет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 26 августа, 2021 Опубликовано 26 августа, 2021 (изменено) · Жалоба 3 hours ago, aaarrr said: Оставьте в RAM только val, например (константная структура с указателями). Куда ОЗУ-то пропало? Просто такими методами экономии получите в результате нечто плохо поддающееся пониманию. 3 hours ago, aaarrr said: Что-то прямо все по краю: памяти нет, запаса по времени нет. сначала скрипты были пару десятков строк. но аппетиты у народа растут и они пишут скрипты на сотни строк. соответсвенно ОЗУ отжирается. там осталось всего на донышке. я когда разрабатывал систему подошел к этому как то легкомысленно. поначалу ОЗУ было море, я как то не парился особо. потом начали расти аппетиты, давай сделаем такие примочки, давай сякие, вообщем стою на пороге смены камня. запас по времени есть, но я пытаюсь сэкономить, опять таки - народ в скриптах грузит систему нипадетски я пытаюсь соптимизировать по скорости всё что можно. Изменено 26 августа, 2021 пользователем jenya7 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 26 августа, 2021 Опубликовано 26 августа, 2021 · Жалоба 30 минут назад, jenya7 сказал: (4 байта указатель + 4 байта переменная ) * 10 таймеров это если делать по принципу Eddy_Em. Можно взять "принцип Eddy_Em" заменив uint32_t val; на указатель на неё и расположить эту структуру во флешь. Но как уже сказали: всё это - экономия на пуговицах. 30 минут назад, jenya7 сказал: if (TIMx == TIM6) else if (TIMx == TIM7) я не хочу. все эти сравнения влияют на время исполнения. А чем вас мой вариант не устроил? Он оптимальнее по времени исполнения (без лишних переходов). 30 минут назад, jenya7 сказал: поначалу ОЗУ было море, я как то не парился особо. Видимо это и есть главная причина. Как всегда. Сперва "не парилсо", а потом начинается экономия на пуговицах. 30 минут назад, jenya7 сказал: запас по времени есть, но я пытаюсь сэкономить, опять таки - народ в скриптах грузит систему нипадетски я пытаюсь соптимизировать по скорости всё что можно. Так не занимайтесь экономией на пуговицах, а переделывайте весь алгоритм работы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться