Attiny2313+DS1307+DS18B20

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Аватара пользователя
Danko
Сверлит текстолит когтями
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай
Контактная информация:

Re: Attiny2313+DS1307+DS18B20

Сообщение Danko »

Seal писал(а):Can't read file : ..\cvavr2\inc\mega8.h.

Ругается при первом открытии. При последующих уже не ругается и компилируется без ошибок.
Последний раз редактировалось Danko Пт апр 23, 2010 15:08:44, всего редактировалось 1 раз.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Kazemir
Открыл глаза
Сообщения: 60
Зарегистрирован: Вс апр 11, 2010 22:15:11

Re: Attiny2313+DS1307+DS18B20

Сообщение Kazemir »

Danko!
Собрал сей девайс, все заработало. За что огромный респект!!! Часы работают прекрасно, термометр тоже пашет ( использую с одним датчиком ds18b20), но на поверку оказалось, что показания завышены примерно на 1,5 градуса. Примерно, потому что ошибка плавающая в пределах 0.5 - 2.0 градуса. Сие картина одинаково наблюдается с разными датчиками температуры ( их у меня 5 штук). Сравнивал с ртутным термометром и двумя термометрами, собранными тоже на ATtiny2313, но другой конструкции и с другим кодом. Кстати показания ртутного и двух электронных совпадают. При проверке для чистоты эксперимента датчики трех указанных электронных термометров скреплены вместе липкой лентой. Вопрос естественно возникает один, в чем может быть причина и с какой стороны копать. Заранее благодарен!
Аватара пользователя
pelican
Открыл глаза
Сообщения: 42
Зарегистрирован: Пн апр 26, 2010 11:01:50
Откуда: АРК Симферополь

Re: Attiny2313+DS1307+DS18B20

Сообщение pelican »

Danko писал(а):...


кто-нибудь собирал сей девайс? http://radiokot.ru/circuit/digital/home/24/

Уважаемый Господин Кот Danko! К Вам лично обращаюсь:

интересует вот что: возможность вывода инфы на индикатор 16х1 но не с левого края, а по центру (или растянуть на всю ширину пробелами).
где-то тут в какой-то теме читал, что с этим ЖК есть неувязка (вроде бы он думает, что у него не 16х1, а 8х2 - т.е. перевод строки нужен...)
что скажете по этому поводу?
может, что-то можно в прошивке изменить (в статье ссылка есть)...

ПЫС: извините за назойливость (этот вопрос пытался поднять в другой ветке):
http://www.radiokot.ru/forum/viewtopic.php?f=20&t=20337&start=0

ПЫС:ПЫС: я, хоть и программер, но специализация у меня СОВЕРШЕННО другая (базы данных),
в С++, а особенно в ассемблере, можно сказать, я практически = 0, поэтому, в вышеупомянутых исходниках сообража оччччч туго, боюсь протупить...
Мне бы, хоть, пальцем (носом) ткнуть, откуда или где копать (то, что копать до обеда, это понятно :)) ).

Я не жду готовой переделанной прошивки! Мне просто нужен <F1>!!!

ПЫС:ПЫС:ПЫС:: земляк, просвети, плз!!!
Аватара пользователя
Danko
Сверлит текстолит когтями
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай
Контактная информация:

Re: Attiny2313+DS1307+DS18B20

Сообщение Danko »

Вот отсюда

Код: Выделить всё

SIGNAL(SIG_OVERFLOW1)
{
TCNT1=0xF3CB;
send_command(0x80);
   if(precense_ds18b20!=0)  //Если датчик откликнулся
   {
send_data('T');
...
начинается вывод информации на "экран". Теоретически если до send_data('T'); на "экран" отправить несколько пробелов send_data(' ');send_data(' ');send_data(' '); (например три) можно сдвинуть "картинку" ближе к центру. На практике нужно смотреть. Это только приблизительный анализ кода.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Аватара пользователя
pelican
Открыл глаза
Сообщения: 42
Зарегистрирован: Пн апр 26, 2010 11:01:50
Откуда: АРК Симферополь

Re: Attiny2313+DS1307+DS18B20

Сообщение pelican »

Спасибо! Буду пробовать.
Kazemir
Открыл глаза
Сообщения: 60
Зарегистрирован: Вс апр 11, 2010 22:15:11

Re: Attiny2313+DS1307+DS18B20

Сообщение Kazemir »

Уважаемый, Danko!
Извиняюсь, но скажите, Вы мой вопрос игнорируете? Хотелось бы все таки узнать ваше мнение насчет завышения показаний температуры.
ukrman
Открыл глаза
Сообщения: 54
Зарегистрирован: Чт апр 02, 2009 12:31:15
Откуда: Луганск

Re: Attiny2313+DS1307+DS18B20

Сообщение ukrman »

А не выложит ли автор прошивку под индикатор с ОА
neon-f
Потрогал лапой паяльник
Сообщения: 392
Зарегистрирован: Сб дек 12, 2009 02:15:45

Re: Attiny2313+DS1307+DS18B20

Сообщение neon-f »

ukrman этот проект больше не развивается, посмотри лучше вот этот viewtopic.php?t=21235&postdays=0&postorder=asc&start=0 Эти часы тоже от Danko. Там прошивка универсальная, может работать с любыми индикаторами и любыми ключами.
Аватара пользователя
pelican
Открыл глаза
Сообщения: 42
Зарегистрирован: Пн апр 26, 2010 11:01:50
Откуда: АРК Симферополь

Re: Attiny2313+DS1307+DS18B20

Сообщение pelican »

pelican писал(а):кто-нибудь собирал сей девайс? http://radiokot.ru/circuit/digital/home/24/

2 Danko!

собрал, прошил, работает.
НО! жк-дисплей не постоянно горит, как и должно быть, а вспыхивает примерно с частотой 1 Гц. что может быть?
и ещё. при вкл. питания надпись "Start..." не выводится...

где зарыт пёс? исходник на сях, а я в них не силен... <F1>!!!
xBOSSx
Родился
Сообщения: 8
Зарегистрирован: Сб май 16, 2009 22:18:16

Re: Attiny2313+DS1307+DS18B20

Сообщение xBOSSx »

Danko, спасибо за проекты, часы у тебя получаются интересные ! Вот решил собрать простенькие часы с 2-мяу датчиками температуры, скачал твой проект Clock-Term_tiny2313_DS1307_DS18B20_4LED_OK, добавил еще один датчик в протеусе, в параллель первому, а он не работает, определяется только один, где крутить?
Аватара пользователя
Danko
Сверлит текстолит когтями
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай
Контактная информация:

Re: Attiny2313+DS1307+DS18B20

Сообщение Danko »

В жизни у каждого датчика свой уникальный серийный номер. В Протеусе если один датчик можно ничего не делать, а если несколько, либо каждому датчику назначить свой номер, либо авто.

т.е. нужно смотреть свойства DS18B20.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Kazemir
Открыл глаза
Сообщения: 60
Зарегистрирован: Вс апр 11, 2010 22:15:11

Re: Attiny2313+DS1307+DS18B20

Сообщение Kazemir »

Уважаемый Данко!
Не сочтите за труд, все таки проясните ситуацию. Вопрос задается в третий раз, до вас похоже с этим вопросом не просто достучаться, но я попробую все таки еще разок. Повторил данный девайс, просто , оригинально, доступно за что и спасибо, но почему то показания термометра завышены на пару градусов. Хотелось бы услышать от автора в чем все таки может быть причина? Перепробовано немало датчиков и сравнивались показания с другими термометрами (промышленными и самидельными), результат однозначен. В итоге Ваш девайс в настоящее время исправно исполняет только функцию часов, т.к. считывать показания термометра и вычитать пару градусов как то не серьезно.
xBOSSx
Родился
Сообщения: 8
Зарегистрирован: Сб май 16, 2009 22:18:16

Re: Attiny2313+DS1307+DS18B20

Сообщение xBOSSx »

Danko, спасибо! Изменил серийник в свойствах и все пошло!
Аватара пользователя
Danko
Сверлит текстолит когтями
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай
Контактная информация:

Re: Attiny2313+DS1307+DS18B20

Сообщение Danko »

Kazemir, во всех своих проектах я использую библиотеку из CVAVR, которую я слегка подправил, а точнее функция возвращает 16-битное число и выглядит оно как в даташнике на DS18B20.

А игнорирую я аналогичные вопросы только по одной причине на них у меня нет ответа.

С следующем проекте я не буду использовать CVAVR, и я сам хочу выяснить, по крайней мере увидеть разницу с одним и тем же датчиком и с разными библиотеками.

Возможно через время я смогу ответить на Ваш вопрос.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Kazemir
Открыл глаза
Сообщения: 60
Зарегистрирован: Вс апр 11, 2010 22:15:11

Re: Attiny2313+DS1307+DS18B20

Сообщение Kazemir »

Danko!
Благодарю за ответ, будем ждать результата. Может быть тому виной слегка подправленная библиотека CVAVR, но это только предположение.
Аватара пользователя
Danko
Сверлит текстолит когтями
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай
Контактная информация:

Re: Attiny2313+DS1307+DS18B20

Сообщение Danko »

Не хочется ссылаться на Протеус, но:

почему в Протеусе сколько выставил на датчике - столько часы температуру и показывают ?
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Kazemir
Открыл глаза
Сообщения: 60
Зарегистрирован: Вс апр 11, 2010 22:15:11

Re: Attiny2313+DS1307+DS18B20

Сообщение Kazemir »

В том то и дело! Протеус при эмуляции конкретного устройства может и не заработать, данный девайс он эмулирует прекрасно и без ошибки показаний датчика температуры, поэтому я и стал его реализовывать в железе, а в реальной жизни оказалось, что темп. завышается, ошибка накапливается и стабилизируется при превышении примерно на 2 градуса. Поэтому я и задал вопрос автору. Кстати ни одно устройство с ADC ( имеется ввиду часы на Atmega8) в протеусе не работают. Это только у меня так или еще у кого то так?
Аватара пользователя
Danko
Сверлит текстолит когтями
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай
Контактная информация:

Re: Attiny2313+DS1307+DS18B20

Сообщение Danko »

не работают те у которых аппаратный TWI.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Kazemir
Открыл глаза
Сообщения: 60
Зарегистрирован: Вс апр 11, 2010 22:15:11

Re: Attiny2313+DS1307+DS18B20

Сообщение Kazemir »

Проясните пожалуйста, что такое "аппаратный TWI" и что конкретно надо в данном случае сделать, чтоб исправить ситуацию
Аватара пользователя
Danko
Сверлит текстолит когтями
Сообщения: 1287
Зарегистрирован: Пн окт 13, 2008 11:45:54
Откуда: РФ, Крым, г.Бахчисарай
Контактная информация:

Re: Attiny2313+DS1307+DS18B20

Сообщение Danko »

выкладывать теорию о двухпроводной шине я не буду.

Конкретно в моих первых проектах в main-файле исходников были строки:

Код: Выделить всё

/* если аппаратный TWI (I2C) протокол не работает - раскоментируй и получишь програмный  
// I2C Bus functions (PORTC bit's  4, 5)
#asm
   .equ __i2c_port=0x15
   .equ __sda_bit=4
   .equ __scl_bit=5
#endasm

// DS1307 Real Time Clock functions (I2C - програмный )
#include "ds1307_.h"
*/

// DS1307 Real Time Clock functions TWI (I2C - аппаратный)
#include "ds1307_twi.h"
здесь програмный I2C отключен.

для включения програмного I2C и соответственно отключения аппаратного нужно снять комент с первой части (#asm...#include "ds1307_.h") и соответственно закомент. вторую т.е (#include "ds1307_twi.h")

еще нужно закомент.инициализацию TWI т.е. закомент. строки
TWSR=0x00;
TWBR=0x0C;
TWAR=0xD0;
TWCR=0x44;


В последующем я отказался от аппаратного TWI и использую програмный I2C.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»