Attiny2313+DS1307+DS18B20
Re: Attiny2313+DS1307+DS18B20
Уважаемый , Данко . Если Вас не затруднит , взгляните на проект по следующим вопросам :
1)Поясните строки 234--255 , не ясна тавтологическая запись или так надо . Какова частота прерываний и как таймер перезапускается , или как он работает , если иначе чем по переполнению ? ( interrupt [TIM0_OVF] void timer0_ovf_isr(void) )
2) нельзя ли сделать так , чтобы установка времени была без задержек на 0.5 с после отжатия , например так:
for (i=0;i<20;i++){ // 10 сек. показывать время (20 * 0.5 сек.)
// time_view();
if (zpt_ON == 0) zpt_ON=1; else zpt_ON=0; // помигаем точкой -=- занимает 5 слов -=-
read_key(); // -=- занимает 52 слова -=-
time_view();
delay_ms(500); // -=- занимает 3 слова -=-
}
поставить time_view(); после read_key(); а не перед , lда еще через 0.5 с - delay_ms(500);
Руки убрал ,а потом по прошествию 0.5 с время само изменяется - как то непривычно .
3)И если убрать начальные нулевые установки не будет ли места сделать ( получается около 3% свободно ), чтобы во время установки времени индикация температуры не прерывала процесс установки - очень неудобно .
Заранее , благодарю !
1)Поясните строки 234--255 , не ясна тавтологическая запись или так надо . Какова частота прерываний и как таймер перезапускается , или как он работает , если иначе чем по переполнению ? ( interrupt [TIM0_OVF] void timer0_ovf_isr(void) )
2) нельзя ли сделать так , чтобы установка времени была без задержек на 0.5 с после отжатия , например так:
for (i=0;i<20;i++){ // 10 сек. показывать время (20 * 0.5 сек.)
// time_view();
if (zpt_ON == 0) zpt_ON=1; else zpt_ON=0; // помигаем точкой -=- занимает 5 слов -=-
read_key(); // -=- занимает 52 слова -=-
time_view();
delay_ms(500); // -=- занимает 3 слова -=-
}
поставить time_view(); после read_key(); а не перед , lда еще через 0.5 с - delay_ms(500);
Руки убрал ,а потом по прошествию 0.5 с время само изменяется - как то непривычно .
3)И если убрать начальные нулевые установки не будет ли места сделать ( получается около 3% свободно ), чтобы во время установки времени индикация температуры не прерывала процесс установки - очень неудобно .
Заранее , благодарю !
- Вложения
-
- Clock-Term_tiny2313_DS1307_DS18B20_4LED_OK.zip
- Проект
- (214.86 КБ) 518 скачиваний
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Attiny2313+DS1307+DS18B20
Могу сказать, что Вы выбрали не самый лучший проект для изучения.
Когда я его выкладывал, то подумать и не мог, что он будет интересен и в некотором смысле популярен. Проект создавался в далеком 2008 году и это был мой второй рабочий проект. Именно рабочий т.к. в исходнике очень много строк применяемых именно для обкатки.
например // -=- занимает 52 слова -=-
В процессе обкатки я менял содержимое регистров но при этом не менял комментарии, вот и получилась своего рода тавтология.
Вы обратили внимание на тавтологию, но не обратили внимание на эти строки
что касается инициализации нулями то на данный момент я в новом проекте не удаляю, но закрываю коментами эти строки.
функцию работы кнопок, как и весь текст программы я редактировать не хочу.
Вопрос по кнопкам: как часто Вы ими пользуетесь ?
теоретически один раз при установке времени, ну еще пару раз в году при переводе стрелок. Если с кварцем не повезло, то еще раз в месяц при корректировке часов.
На данный момент я потерял полный интерес к этому проекту.
Хотите вносить исправления в проект, так вносите. На какой бес я исходники выкладывал? Так похвастаться часами?
Все мои проекты это практическое изучение програмирования. Моей первой книгой по програмированию была книга Питера Нортона (наверное есть люди которые помнят кто это такой) в которой он и советовал писать программы с практическим применением.
odesasha, а у Вас есть свой проект которым Вы могли бы поделится с общественность?
Заранее спасибо за ответ.
Когда я его выкладывал, то подумать и не мог, что он будет интересен и в некотором смысле популярен. Проект создавался в далеком 2008 году и это был мой второй рабочий проект. Именно рабочий т.к. в исходнике очень много строк применяемых именно для обкатки.
например // -=- занимает 52 слова -=-
В процессе обкатки я менял содержимое регистров но при этом не менял комментарии, вот и получилась своего рода тавтология.
Вы обратили внимание на тавтологию, но не обратили внимание на эти строки
Код: Выделить всё
rtc_get_time(&tmphour, &tmpmin, &tmpsec);
if (tmphour != 0xFF) myhour=tmphour; // -=- занимает 3 слова -=-
if (tmpmin != 0xFF) mymin=tmpmin;
что касается инициализации нулями то на данный момент я в новом проекте не удаляю, но закрываю коментами эти строки.
функцию работы кнопок, как и весь текст программы я редактировать не хочу.
Вопрос по кнопкам: как часто Вы ими пользуетесь ?
теоретически один раз при установке времени, ну еще пару раз в году при переводе стрелок. Если с кварцем не повезло, то еще раз в месяц при корректировке часов.
На данный момент я потерял полный интерес к этому проекту.
Хотите вносить исправления в проект, так вносите. На какой бес я исходники выкладывал? Так похвастаться часами?
Все мои проекты это практическое изучение програмирования. Моей первой книгой по програмированию была книга Питера Нортона (наверное есть люди которые помнят кто это такой) в которой он и советовал писать программы с практическим применением.
odesasha, а у Вас есть свой проект которым Вы могли бы поделится с общественность?
Заранее спасибо за ответ.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Re: Attiny2313+DS1307+DS18B20
Danko писал(а):odesasha, а у Вас есть свой проект которым Вы могли бы поделится с общественность?
Есть : http://radio-hobby.org/modules/newbb/vi ... pe=&mode=0
От haimovich .
Вот видеоинструкция в подтверждение работы :
http://www.youtube.com/watch?v=4grXaTOwH0g
За 3 недели более 2-х тыс просмотров , а о пользе судить не мне , а статистике .
А вот и как промышленное изделие : http://www.youtube.com/watch?v=dtG11Z5_Wzw
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re:
larik писал(а):плату прислал dem-vr за что ему большое спасибо, я немного переделал под себя под SMD какие смог детали а так вобше она такая же как у dem-vr, заштриховал потому что дефицит с хлорным железом
http://radiokot.ru/forum/download/file.php?id=17138
Странно заштриховал как то неужели полигонов не было?
В поисках истины человек развивается.
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Attiny2313+DS1307+DS18B20
Ютубе. Ха.
Да там фак покажи и мильён просмотров будет.
Ваш проект интересный, но лично я ни с кем 3,14сюнами мерятся не собираюсь.
Да там фак покажи и мильён просмотров будет.
Ваш проект интересный, но лично я ни с кем 3,14сюнами мерятся не собираюсь.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Re: Attiny2313+DS1307+DS18B20
2200 просмотров форума :
http://radio-hobby.org/modules/newbb/vi ... pe=&mode=0
А ютуб -вместо писанины , как пользоваться .
Вообще я не хвалюсь : Вы спросили - я ответил .
Простота в том , что мне все-таки хочется доработать часы на 2313 , а Вы как раз и могли бы помочь - распыляться на 2 проекта мне не можется .
Надо сделать просто часы , в цех на работе и , имея такие дома ,я попросил Вас всего-лишь доработать недостатки .
Ну нет так нет .Будет время попробуем сами . Просто в ветке по М8+4ЛЭД они опять всплыли как ВАЗ-2106 , а прошивка с вопросами , ну и я решил
проявить инициативу, а она по прежнему наказуема .
http://radio-hobby.org/modules/newbb/vi ... pe=&mode=0
А ютуб -вместо писанины , как пользоваться .
Вообще я не хвалюсь : Вы спросили - я ответил .
Простота в том , что мне все-таки хочется доработать часы на 2313 , а Вы как раз и могли бы помочь - распыляться на 2 проекта мне не можется .
Надо сделать просто часы , в цех на работе и , имея такие дома ,я попросил Вас всего-лишь доработать недостатки .
Ну нет так нет .Будет время попробуем сами . Просто в ветке по М8+4ЛЭД они опять всплыли как ВАЗ-2106 , а прошивка с вопросами , ну и я решил
проявить инициативу, а она по прежнему наказуема .
Re: Attiny2313+DS1307+DS18B20
odesasha!
У меня эти часики реализованы, просты, удобны, без всяких наворотов, работают нормально. Правда я еще добавил пару кнопок, чтоб удобнее было выставлять время (две кнопки на часы +/_ и на минуты аналогично). Но если доработать в плане ваших замечаний, было бы гораздо удобнее. Особенно раздражает торможение установки времени во время индикации температуры. Если у вас что то получится в этом плане, поделитесь пожалуйста результатами.
Ну а автор молодец, сделал в свое время нормальные часики, сейчас занят более интересными проблемами, хочется пожелать ему успехов, ждем от него очередной девайс (на mega168 который).
У меня эти часики реализованы, просты, удобны, без всяких наворотов, работают нормально. Правда я еще добавил пару кнопок, чтоб удобнее было выставлять время (две кнопки на часы +/_ и на минуты аналогично). Но если доработать в плане ваших замечаний, было бы гораздо удобнее. Особенно раздражает торможение установки времени во время индикации температуры. Если у вас что то получится в этом плане, поделитесь пожалуйста результатами.
Ну а автор молодец, сделал в свое время нормальные часики, сейчас занят более интересными проблемами, хочется пожелать ему успехов, ждем от него очередной девайс (на mega168 который).
Re: Attiny2313+DS1307+DS18B20
Сейчас в проекте часы - таймер для духовки с энкодером с кнопкой, по кнопке с удержанием > 10c будет и +/- коррекция часов .PCF8563 или DS1307
решается. 74HC595 или CD4015 на сегменты .Термометр не нужен .
Перед сборкой в макете попробуем скорректировать проект Данко ( почистив лишки для места ) , кнопки придется делать на разряды индикатора через
диоды ( нужен запуск по 6-му сигналу ) .
решается. 74HC595 или CD4015 на сегменты .Термометр не нужен .
Перед сборкой в макете попробуем скорректировать проект Данко ( почистив лишки для места ) , кнопки придется делать на разряды индикатора через
диоды ( нужен запуск по 6-му сигналу ) .
- vitalik_1984
- Поставщик валерьянки для Кота
- Сообщения: 2482
- Зарегистрирован: Пт авг 27, 2010 05:57:06
- Откуда: Тюмень
- Контактная информация:
Re: Attiny2313+DS1307+DS18B20
odesasha писал(а):Руки убрал ,а потом по прошествию 0.5 с время само изменяется - как то непривычно .
Смотрел я код...
М-даа там нужно полностью переписывать процедуры вывода времени на ЛЕД и в соответствии с этим опрос клавиш.
Код: Выделить всё
rtc_get_time(&tmphour, &tmpmin, &tmpsec);//читаем данные с часов!!!
if (tmphour != 0xFF) myhour=tmphour;
if (tmpmin != 0xFF) mymin=tmpmin;
//if (tmpsec != 0xFF) mysec=tmpsec;
digit_out[0] = myhour >> 4;
digit_out[1] = myhour & 0x0F;
digit_out[2] = mymin >> 4;
digit_out[3] = mymin & 0x0F;
В поисках истины человек развивается.
Re: Attiny2313+DS1307+DS18B20
Kazemir писал(а):Особенно раздражает торможение установки времени во время индикации температуры. Если у вас что то получится в этом плане, поделитесь пожалуйста результатами.
Danko и остальные страдающие от "затыков" кнопок. Вот как я избавился от них (в своей конструкции). Нужно изменить сам принцип работы библиотеки ds18x20. Для этого нужно раздельно посылать команды на конвертацию и на чтение температуры, а паузу между ними отсчитывать самостоятельно, а не с помощью delay. После этого измерение температуры не оказывает сколь нибудь заметного влияния на нажатие кнопок.
Еще я попробовал убрать запрет прерываний в либах на время действия команд w1_write(0x44); и w1_init(); Как ни странно это совсем не добавило количество "некорректных" чтений датчика. как было примерно половина чтений некорректных, так половина и осталась, зато пропало любое "подмигивание" индикатора в любых ситуациях. Общем в таком виде измерение температуры происходит полностью незаметно. я так у себя и оставил.
"Отсеивание" некорректных показаний можно сделать как кому угодно, я сделал так. в основном цикле, сама по себе, не привязанная ни к каким действиям, каждые 2 секунды измеряется температура. удачные измерения записываются в переменную temperature, неудачные - игнорируются. А значение этой температуры уже где надо, там и используется, без всякой привязки к процессу измерения
Код: Выделить всё
//пока только для положительных температур, до отрицательных просто руки не дошли
if (Interval >=1000) // каждые две секунды
{
Interval=0;
temperature_temp=(ds18b20_read_temp(0)); // читаю датчик температуры DS18B20
if (temperature_temp!=(-9999)) {temperature=temperature_temp*10;} // если температура прочиталась правильно, заносим её в "temperature"
ds18b20_convert_temp(0); // команда на измерение температуры для след чтения
}
Вот эту библиотеку я использую. (прерывания не пронуты)
- Вложения
-
- ds18b20_.rar.rar
- (1.61 КБ) 303 скачивания
KIT
Re: Attiny2313+DS1307+DS18B20
Исправил баги :
1) Убрал незначащий ноль в часах меньше 10
2) Прерывание установки температурой
3) Отставание коррекции от кнопок.
1) Убрал незначащий ноль в часах меньше 10
2) Прерывание установки температурой
3) Отставание коррекции от кнопок.
- Вложения
-
- Clock-Term_tiny2313_DS1307_DS18B20_4LED_OK.zip
- Исправленная и проверенная прошивка
- (280.42 КБ) 632 скачивания
Re: Attiny2313+DS1307+DS18B20
odesasha!
Спасибо огромное за сообщение в личку и за информацию, выложенную в форуме. В ближайщее время перепрошью проц. и обязательно отпишусь о результатах.
Удачи!
Спасибо огромное за сообщение в личку и за информацию, выложенную в форуме. В ближайщее время перепрошью проц. и обязательно отпишусь о результатах.
Удачи!
Re: Attiny2313+DS1307+DS18B20
odesasha!
Установил вашу прошивку, вери гууд, по всем трем пунктам, перечисленным выше, отрабатывает, буду пользовать. Еще раз спасибо!
Установил вашу прошивку, вери гууд, по всем трем пунктам, перечисленным выше, отрабатывает, буду пользовать. Еще раз спасибо!
Re: Attiny2313+DS1307+DS18B20
У меня тоже .
Есть почти 3% флэш , при оказии подумаю как запускать по 6-му сигналу , но гарантии что будет сделано не даю , нельзя сильно менять схему - у людей печатки .
Есть почти 3% флэш , при оказии подумаю как запускать по 6-му сигналу , но гарантии что будет сделано не даю , нельзя сильно менять схему - у людей печатки .
Re: Attiny2313+DS1307+DS18B20
Убрал , на мой взгляд , ненужную обработку молчания DS1307.
Кто хочет :
Добавляйте кнопку обнуления секунд на одну из ног (х) сегментов через 4.7к на землю .
Гасите индикатор переводом сегментов на входы с подтяжкой .
По 0 на этой ноге (х) делайте rtc_set_time(myhour, mymin, 0) в ф-ции обслуживания дисплея .
Верните порт на выход .
Кто хочет :
Добавляйте кнопку обнуления секунд на одну из ног (х) сегментов через 4.7к на землю .
Гасите индикатор переводом сегментов на входы с подтяжкой .
По 0 на этой ноге (х) делайте rtc_set_time(myhour, mymin, 0) в ф-ции обслуживания дисплея .
Верните порт на выход .
- Вложения
-
- Clock-Term_tiny2313_DS1307_DS18B20_4LED_OK_NEW.zip
- Без проверки на ошибку I2C
Свободно 3% на CVv.2.03. - (281.26 КБ) 431 скачивание
Re: Attiny2313+DS1307+DS18B20
Кто может , проверьте сброс сек .
Третья кнопка на 12 ногу ТИНИ через резистор 4.7к на массу.
Третья кнопка на 12 ногу ТИНИ через резистор 4.7к на массу.
- Вложения
-
- Clock-Term_tiny2313__4LED_OK_PBO_Res_sec_Button_to_resgnd.zip
- Для теста на сброс секунд 3-й
кнопкой . - (284.15 КБ) 394 скачивания
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Attiny2313+DS1307+DS18B20
В погоне за уменьшением размера кода кое что подправил.
//Program size: 988 words (1976 bytes), 96,5% of FLASH
И еще немного подправил.
//Program size: 974 words (1948 bytes), 95,1% of FLASH
//Program size: 988 words (1976 bytes), 96,5% of FLASH
И еще немного подправил.
//Program size: 974 words (1948 bytes), 95,1% of FLASH
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
Re: Attiny2313+DS1307+DS18B20
И наверное вместо : if (zpt_ON == 0) zpt_ON=1; else zpt_ON=0;
написать :
zpt_ON =~zpt_ON ; .
Далее надо убрать антидребезг - он не нужен .
В свободный FLash (92.3% занято )может получиться ввести еще и декремент часов и минут .
написать :
zpt_ON =~zpt_ON ; .
Далее надо убрать антидребезг - он не нужен .
В свободный FLash (92.3% занято )может получиться ввести еще и декремент часов и минут .
- Вложения
-
- Clock-Term_tiny2313__4LED_OK_PBO_Res_sec_Button_to_resgnd_3.zip
- Для тестирования желающими .
- (90.87 КБ) 352 скачивания
Re: Attiny2313+DS1307+DS18B20
При работе над другим проектом с участием RTC , подумал , что в принципе секунды можно сбрасывать при переводе часов .
При этом не менять схему вообще , а лишь прошивку .
Установить часы на 1 меньше , по сигналу точному времени нажать кнопку часов и с инкрементом часов сбросятся и секунды .
Проект в архиве .(10% Flash свободно - кому интересно , есть где поиграться с добавлениями )
При этом не менять схему вообще , а лишь прошивку .
Установить часы на 1 меньше , по сигналу точному времени нажать кнопку часов и с инкрементом часов сбросятся и секунды .
Проект в архиве .(10% Flash свободно - кому интересно , есть где поиграться с добавлениями )
- Вложения
-
- Clock-Term_tiny2313__4LED_OK_MOD_VERSION.zip
- Установить часы на 1 меньше по точному времени нажать кнопку часов и с инкркментом сбросить и секунды .
Ничего не добавлять в схему . - (87.95 КБ) 401 скачивание
- Danko
- Сверлит текстолит когтями
- Сообщения: 1287
- Зарегистрирован: Пн окт 13, 2008 11:45:54
- Откуда: РФ, Крым, г.Бахчисарай
- Контактная информация:
Re: Attiny2313+DS1307+DS18B20
Антидребезг зря убрал.
Кстати добавить третью кнопку без изменения схемы очень легко. Нужны еще два диода и все.
Кстати добавить третью кнопку без изменения схемы очень легко. Нужны еще два диода и все.
Первое, что привлекает в программировании, объяснить просто: ты говоришь компьютеру что то сделать, и он это делает. Безошибочно. Всегда. Без возражений.
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"
---------------------
Линус Торвальдс. "Just for fun. Рассказ нечаянного революционера"