Страница 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>