Страница 1 из 1
tiny+18b20
Добавлено: Пн авг 24, 2009 17:46:26
Corporal
Можно ли сделать термометр на tiny2313+lcd? Я в принципе начал, но получаю ошибку "Program size 1267 words" а надо 1024, может я что-то не то делаю? (Я только учусь)
Добавлено: Пн авг 24, 2009 19:25:52
Alex72
Твой скомпилированный HEX не влазит во флэш память выбранного МК, оптимизируй программу или бери МК с флэш памятью большего объема. (Лучше первый вариант)
Добавлено: Пн авг 24, 2009 19:29:18
GP1
Есть еще способ
забодяжить на АСМе

Добавлено: Пн авг 24, 2009 20:10:33
__Alexander
В очередной раз тылдычу, убери нах этот sprintf (он у тя два раза повторяется), и еще третья часть МК свободная останется.
Не для Tiny эти функции предназначены.
---------------------
Добавлено: Пн авг 24, 2009 22:05:45
Corporal
У меня есть только 2313, пока учусь на ней.
GP1, асм не знаю, знаю только Си. Может пример есть?
__Alexander, исправь, пожалуйста, как надо или объясни какую функцию использовать.
Добавлено: Пн авг 24, 2009 23:24:02
Pooher
асм не знаю, знаю только Си. Может пример есть?
Пример чего?
Работа с LCD, DS1820 ...?
знаю только Си
Ну, судя по размеру кода такой программы, Си Вы знаете не на много лучше чем АСМ.
Добавлено: Пн авг 24, 2009 23:34:27
__Alexander
Corporal писал(а):
__Alexander, исправь, пожалуйста, как надо или объясни какую функцию использовать.
немного исправлю: 1 - для начала надо определиться, что Вы хотите получить, если вы используете один датчик на одной ноге порта, то возможно нет необходимости в использовании всей библиотеки 1820. Возможно обойтись парой-тройкой функций, которые сократят вам и объем кода программы и затрат на его написание.
2 - результат Вы получаете сюда (при Вашем коде):
temp=ds1820_temperature_10(&ds1820_rom_codes[i, 0]);
И последнее, как Вы им (результатом) воспользуетесь - это Ваше личное дело.
Про эту библиотеку ничего не скажу, надо видеть результат, получите его и тогда продолжим. По крайней мере, перевод из temp по даташиту в нормальный вид без встроенных функций будет намного меньше.
------------------------------
Добавлено: Вт авг 25, 2009 14:15:43
Corporal
убери нах этот sprintf
хорошо, как тогда вывести значение temp на экран?
Добавлено: Вт авг 25, 2009 15:16:17
sachok
Вам только на 1 датчик нужен термометр??? Если нет то что в этом роде должно работать))) А на ATtiny2313 можно сделать и 2 датчиков, на Си.
Добавлено: Вт авг 25, 2009 17:28:00
Corporal
Хотелось бы на два датчика, но кажись и на один не получится - у тини2313 памяти маловато. Даже "Хелоу" убираю, все равно превышает 1024
Добавлено: Вт авг 25, 2009 17:40:46
Danko
Откажись полностью от sprintf.
Добавлено: Вт авг 25, 2009 18:19:49
Danko
Corporal, уже посмотрел мои файлы? Хочешь можно и на 8 датчиков на тиньке сделать?
Corporal, небольшой вопрос не совсем в тему, что то вроде разминки для ума.
" С какой точностью на Си можно посчитать факториал числа 100? " Обещаю если ты на него ответишь (составишь програмку) то все остальные программы на Си у тебя в тиньку будут влетать со свистом.

Добавлено: Вт авг 25, 2009 18:52:56
Corporal
Посмотрел,
Danko , огромное спасибо. Вот только минус не показывает, и после 29 градусов показывает "29;", а ставлю (в Протеусе) отрицательную температуру, пишет 199. Попробую сам разобраться, а то заставляют факториал считать

. И еще, у меня на плате кварц на 10 стоит, что в проге менять для такой частоты?
Добавлено: Ср авг 26, 2009 10:29:57
Danko
Другая частота -> изменения не в проге, а в компиляторе.
Добавлено: Ср авг 26, 2009 14:19:37
__Alexander
Ты получил результат в temp=ds1820_temperature_10(&ds1820_rom_codes[i, 0]); ?
Если да, то теперь в даташите есть табличка, по которой считается температура (и отрицательная в том же числе).
----------------------------------------------
Добавлено: Ср авг 26, 2009 21:09:30
Corporal
Частоту изменил, в Протеусе работает а на плате тинька не видит 18в20. Как использовать табличку, что то не соображу?
Добавлено: Ср авг 26, 2009 22:22:59
Pooher
Как использовать табличку, что то не соображу?
Ну, в ASM есть замечательная директива, "
COM".
Добавлено: Сб авг 29, 2009 10:04:12
aderod
попробуй не использовать эти библиотеки, без них должно влазить.
#include<stdio>
#include<math>