если вам интересно мое мнение, то не так вы делаете только одно - используете Code Vision.
в остальном - если до завтрашнего вечера не решите проблему - тряхну стариной, попробую ваш проект по-своему сделать.
а тини13 может не так уж и мало, если любя ее программировать.
я делал на ней лампу настроения с ИК-дистанционным управлением, диммер тоже с дистанционным управлением... так что нормально.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Cheburator писал(а):Ибо если этот МК не может справится с такой, на мой взгляд, элементарной задачей, то не понятно, что он вообще может.
Это вам так только кажется. Это у вас кода три строчки и кажется что всё просто. А за каждой строчкой увы не один десяток байт. Флоат и библиотеки и отнимают у вас практически всю память.
Конечно, интересно. Поэтому я и задаю свои вопросы именно здесь. И очень благодарен за ответы.
На счет CodeVision - возможно, Вы правы. Я уже много слышал негатива об нем. Вот только ничего конкретного никто не говорит. Я не спорю, но что в нем все-таки не так, не понимаю. Странные и непонятные конструкции, который он создает, я заменяю на вполне для меня читаемые.
Посоветуйте что-нибудь лучше.
Ну, а я буду дальше пробовать решать проблему. Если не получится - буду рад помощи.
Спасибо за предложение!
scorpi_0n писал(а):А за каждой строчкой увы не один десяток байт. Флоат и библиотеки и отнимают у вас практически всю память.
Это я понимаю. Но что-то же может этот МК делать? Наверняка может, отвечаю я сам себе. А это значит, что это я что-то не так делаю. В этом-то и хочу разобраться.
А что подумал Кролик, никто не узнал, потому что он был очень воспитанный.
Вам же уже посоветовали - не использовать библиотеку, которая работает с double внутри себя.
P.S. Стало интересно, влезет ли в 1кБ с нормальной библиотекой. Не поленился, потратил полчаса - результат в архиве. Здесь упрощённый вариант моей самописной библиотеки (без поддержки нескольких датчиков), который помещается в 360 байт кода. При этом есть проверка контрольной суммы, т.е. ошибки чтения не приведут к ложным срабатываниям.
Если делать полноценный вариант (с поиском всех датчиков на шине, автоопределением DS18S20/DS18B20) - получится около 800 байт кода, но не думаю, что в данном применении это нужно.
Я где то год назад сделал зарядку для LiON на Tiny13A.
Аппарат имел 7ми сегментный дисплей подключенный через регистр 595.
Кнопку.
И измерял Напряжение, Ток и считал Ампер часы которые вошли в аккумулятор.
Также когда аккумулятор был заряжен отключал микруху LM2596S.
Но моя ошибка состояла в том что я собрал девайс, а потом решил писать программу.
Первая версия программы вместилась в 1кб. Но когда стал ее улучшать выходил за размеры.
Вот и пришлось долго работать над оптимизацией программы и сильно сожалел что собрал на тиньке 13А, но уже было поздно.
Таким образом потерял много времени пока уместил все нужное. Размер программы ровно 1024 байта.
И все написано в CodevisionAVR.
Так что все уже зависит от вашего рвения закончить проект.
Также могу сказать что самое объемное в программе это управление 7-ми сегментным и расчет емкости.
Поскольку все это привязано к времени, а у тиньки всего лишь один таймер пришлось думать как оптимизировать код.
На атмеге 8 этот код занимал бы меньше места. Тем более у нее в 8 раз больше памяти. А если еще не пользоваться регистром 595 то еще экономнее было бы.
Ну, насчёт больших требований к управлению семисегментником - это не так. Один из моих первых проектов на AVR - вольтметр (для авто), компилируется всего в 378 байт кода (можно и оптимальнее сделать). На расчёт амперчасов оставшихся двух третей flash-памяти явно было бы достаточно.
WiseLord писал(а):Ну, насчёт больших требований к управлению семисегментником - это не так. Один из моих первых проектов на AVR - вольтметр (для авто), компилируется всего в 378 байт кода (можно и оптимальнее сделать).
Кто его знает? На каком МК делали? На тиньке13-ой? Использовали Регистр 595?
WiseLord писал(а):Стало интересно, влезет ли в 1кБ с нормальной библиотекой. Не поленился, потратил полчаса - результат в архиве. Здесь упрощённый вариант моей самописной библиотеки (без поддержки нескольких датчиков), который помещается в 360 байт кода. При этом есть проверка контрольной суммы, т.е. ошибки чтения не приведут к ложным срабатываниям.
ну, вот и решилось все: мне не придется пробовать по-своему
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
выводит информацию на LCD, но сигнал поступает импульсами в среднем раз в минуту, я хочу сделать, чтоб информация горела на LCD, и обновлялась после следующего сигнала. Подскажите как правильно сделать?
Порой люди сами не понимают что спрашивают...
Что значит "когда бы я установил" ? Это как ? Устанавливайте сами любой интервал времени обновления, в чём проблема ?
Что за "сигнал" приходит, после которого нужно обновление экрана ? Зачем вообще обновление синхронизировать с каким то там внешним сигналом ?
Собственно, вопрос из оперы "мысли вслух" - пишу то, о чём думаю...
Извините меня за прямоту, но Вы, видимо, сами не понимаете что Вам нужно сделать. Отсюда и непонимание как это сделать, и отсутствие возможности объяснить, что Вам нужно.
Ещё раз задам вопрос. Попытайтесь на него ответь, пусть не мне, но хотя-бы себе. Для чего нужно синхронизировать обновление экрана с каким-то там таинственным сигналом ? В чём таинственный смысл сих действий ? Измерение и вывод - совершенно две разные задачи, разделите их друг от друга.
Опять слышится эта таинственная фраза О каком "сигнале" идёт речь и что значит "ждём" ? Назревает снова мой предыдущий вопрос...
И причём тут АЦП ? АЦП не умеет ничего "ждать", оно просто преобразует напряжение в цифровое значение. И делает это в тот момент, который задаст программист.