Страница 4 из 5
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Сб окт 11, 2014 20:50:37
Kavka
vdavid писал(а):Ага, только увеличится как использование флеша, так и оперативки

.
Возможно при каком-то сочетании прочего кода.
В тех вариантах, что я выкладывал выше это работает. Вероятно потому что в моих вариантах нет деления выполняющегося во время работы программы кроме деления на 10. И деление 32-битного или 16 битного целого имеют разный размер кода...
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Сб окт 11, 2014 21:05:38
shads
И что там у вас за лучший результат получился? (я имею ввиду флэша и оперативки скока по минимуму кушает?)
Хочу тоже свой вариант запилить, вдруг меньше получится

...
Схемка такая?

Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Сб окт 11, 2014 21:26:03
Gisteresis
Провел измерения.
Мультиметр это эталонный прибор.
Вольтметр и Амперметр это показания данной поделки.
Для Амперметра вход 0..500мВ и дальнейшее усиление в 10 раз.
Спойлер




ОУ запитал от 8В через lm7808
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Сб окт 11, 2014 22:24:06
vdavid
Kavka писал(а):Возможно при каком-то сочетании прочего кода.
По факту в CVAVR с такой конструкцией
Получаем 918 байт кода, тогда как вот такое
Код: Выделить всё
*ulVoltsSum=(5000UL*(*ulVoltsSum))/(256UL*1024);
дает 896 байт.
Переход же к делениям на 10 в 16-ти битке тоже увеличивает код, потому, что кроме библиотечных функций 32-битного деления добавляются 16-битные. В GCC все несколько иначе.
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Вс окт 12, 2014 22:17:52
Kavka
shads писал(а):И что там у вас за лучший результат получился? (я имею ввиду флэша и оперативки скока по минимуму кушает?)
Слегка модифицированный вариант с уклоном на экономию ОЗУ (стек не считается).
816/15 (gcc version 4.7.2 (AVR_8_bit_GNU_Toolchain_3.4.2_939))
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Вс окт 12, 2014 23:52:45
vdavid
Kavka Можно еще маленько ужать

. Кстати, здесь ошибочка:
Код: Выделить всё
uint8_t PROGMEM const mux[ADC_CHANNELS] = {(FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff)),
(FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff))};
Слегка модифицированный Ваш вариант дал 648/15. avr-gcc 4.3.3 (уровень оптимизации "s").
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Пн окт 13, 2014 08:42:33
Gisteresis
shads писал(а):Схемка такая?
При начальных тестах да.
Когда я уже приводил таблицы с измерениями, уже полная схема. Вход по Амперам вы можете выдернуть отсюда
http://piccy.info/view3/7056674/27fe185 ... de5b/1200/
Только R2=100k, R6=10k Короче коэффициент усиления 10.
Выходной резистор R1 следует взять 10к, С2 что то в духе 47..64..100нФ (я их до сих пор не менял. У меня стоит 100к, С2 100пик и все работает, хотя чувствую лучше сменить)
Питание ОУ 8В
Вход по Вольтам, просто делитель, с подстроечным. Деление в 10 раз. 100к, 7.5к, подстроечный 10к
Последнюю 4ю декаду по желанию можно конечно и удалить. Она все равно в лучшем случае показывает дискретами по 4,88В (5000/1024) в лучшем случае. С ней чуть проще калибровать.
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Пн окт 13, 2014 12:23:11
Kavka
vdavid писал(а):Слегка модифицированный Ваш вариант дал 648/15. avr-gcc 4.3.3 (уровень оптимизации "s").
Ошибочка - да.
Твой вариант менее гибок в настройках, но автор темы об этом ничего не написал

С размером тут, как всегда в последних версиях, gcc мудрит. Твой вариант (с компилятором, что я указывал выше) в режиме -Os даёт около 800 байт, а c -O2 даёт 668 байт.
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Пн окт 13, 2014 13:51:12
Gisteresis
Да какие там настройки
Думал для простоты дальнейшего использования, пределы измерений вынести в начало файла в макрос. Вот и все настройки.
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Пн окт 13, 2014 21:05:03
vdavid
Kavka Ага, нет лучшего способа превратить приличный продукт в дерьмо как его покупка большими парнями.
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Вт окт 14, 2014 10:21:58
Kavka
А gcc никто и не покупал...
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Вт окт 14, 2014 21:11:10
vdavid
Kavka, Речь идет именно о проекте winavr, который загадочным образом остановился на отметке 2010-01-20. И больше не поддерживается автором. Как-то это загадочным образом совпало по времени

.
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Вт окт 14, 2014 21:27:43
ARV
не смотря ни на что, WinAVR 20100110 успешно применялся мной для проектов на attiny13, причем даже без особых ухищрений для экономии пространства. при этом функциональная насыщенность проектов совсем не слабая:
1.
Лампа настроения (для плавности цветовых переходов использовался алгоритм Брезенхама)
2.
RGB-светильник с дистанционным управлением (самодельный пульт) и с
управлением с "настоящего китайского" пульта для RGB-светильников
3. Диммер с дистанционным управлениеми автообучением командам ЛЮБОГО пульта (проект не публиковался никогда)
4.
Контроллер вентилятора вытяжки в санузле с оригинальным алгоритмом
Если же применять всякие хаки и трюки, то этот компилятор и этот контроллер и не такое могут!!!
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Ср окт 15, 2014 00:44:06
shads
У меня тоже чето как то получилось

.....
GCC вот такие циферки показывает...
усреднение сделано из 64 отсчетов... (используется внутренний ИОН 1,1в)
возможно указать тип дисплея (ОА, ОК, с инверсией стробов или без)
Ток меряет до 8,191 А, напряжение меряет до 81,91 V (ясный перец что верхние цифры не совсем такие, ну примерно так...)
ЗЫ
Кстати, надо будет попробовать сварганить ампервольтметр на STM32F100, у него ADC по 12 разрядов... так что если мерить до 4,096 ампер и 40,96 вольт, то младшие разряды будут актуальны...
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Ср окт 15, 2014 08:10:19
Gisteresis
R1, R2, R5
Такая конструкция будет в реале?
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Ср окт 15, 2014 08:25:07
shads
Gisteresis писал(а):R1, R2, R5
Такая конструкция будет в реале?
Не... это я на скору руку намулевал

...
В реале сделал бы такую:

Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Ср окт 15, 2014 09:09:32
vdavid
shads, Да ну. 5 Вт на шунте? Еще думайте

.
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Ср окт 15, 2014 10:44:19
Gisteresis
Тут в том то и проблема, что шунт нужно использовать меньше, например 0.1 хотябы или 0.05, 0.01... лучше конечно 75мВ но это совсем идеально.
Если использовать 0.1 тогда падение на нем будет максимум 500мВ, если хотим измерять до 5А. Приходится усиливать. Это накладывает свою погрешность.
Тут и так не хватает вольт, а вы еще делите.
Предлагаю симулировать что то близкое к реальности а не теоретические схемы.
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Ср окт 15, 2014 10:47:14
Pink-Pank
А если шунт поменьше и операционник в качестве усилителя? Единственное, шумы будут сказываться.. но их можно фильтрануть тем же операционником..
Re: Помогите ужать програаму, немного не влезает в ATTiny13
Добавлено: Ср окт 15, 2014 10:47:30
shads
Gisteresis писал(а):Предлагаю симулировать что то близкое к реальности а не теоретические схемы.
Я вообще то
о программе речь вел... а схема - чисто в симуляторе показать, что работает...
А там как угодно... цепляйте конечно усилитель... какие проблемы...
Главное в программе - это
измерение 2-х каналов с усреднением, наличие
развертки 8-ми разрядного дисплея и функции
вывода туды инфы...
А что там на входе и как это отобразить на выходе - это уже хозяин барин... исходники прилагаются

...
А ну и еще... изначально я вообще то хотел мозги помучить, получится ли у меня компактнее сделать

...
Так что я вам не навязываю какие то схемные решения
