Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Поиск схем. Делимся схемами Если вы ищете схему телевизора, видеомагнитофона, игровой приставки - этот раздел для вас...

 
Опции темы
Непрочитано 20.11.2018, 14:27  
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию Re: Термометр на МК Atmega8

Сообщение от Santil@ Посмотреть сообщение
другая запустила индикацию с не понятными символами и всё.
Я компилирую для разных индикаторов два раза, сначала для ОА и переименовываю файл "Termometr_Atm8_CA.hex", затем ОК и файл переименовываю в "Termometr_Atm8_CC.hex", вероятно имена вышли наоборот.
Реклама:
IOPA4 вне форума  
Непрочитано 20.11.2018, 14:38  
mimuh64
Прописка
 
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
mimuh64 на пути к лучшему
По умолчанию Re: Термометр на МК Atmega8

IOPA4, позволь дать совет...
Первое... В динамику нужно внести правки...
Гашение знакомест, запись сегментов, включение знакомест...
Ну, хотя бы так...

PHP код:
interrupt [TIM0_OVFvoid timer0_ovf_isr(void)
{
PORTD PORTD 0x0F;// Здесь гасим
// Place your code here
  
  
PORTB digits[led_buf[n]];
#ifdef CC
  
if (n==1PORTB.7 1; else PORTB.7 0;
#else
  
if (n==1PORTB.7 0; else PORTB.7 1;
#endif
PORTD PORTD 0b00000100 sel[n]; // Здесь включаем
  
n++;
  if (
n==40
//  TCNT0=0xA0;

Второе - самое главное!!! Все прерывания, на момент работы с Датчиком, нужно запретить.
Но, тут есть нюанс, Ваша библиотека написана так, что запрет прерывания для чтения датчиков - функция ds18b20_temperature () - затянет время запрета прерывания почти на 1 сек - Динамика прервется...
Если есть исходник библиотеки, то нужно запрещать прерывание на момент чтения и записи битов в ds18b20.
То что прерывание будет влиять на показания - проверенный и установленный факт, по другому и быть не может...

Кстати, ошибки эти видны и в Протеусе...
mimuh64 вне форума  
Непрочитано 20.11.2018, 14:40  
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию Re: Термометр на МК Atmega8

Добавил проверку корректности чтения данных с датчика, теперь при ошибочном чтении, через 100 мсек повторяется чтение данных с датчика.
Вложения:
Тип файла: zip Exe_Exe_8MHZ(CRC).zip (19.0 Кб, 0 просмотров)
IOPA4 вне форума  
Сказали "Спасибо" IOPA4
Santil@ (20.11.2018)
Непрочитано 20.11.2018, 14:57  
eddy
Почётный гражданин KAZUS.RU
 
Аватар для eddy
 
Регистрация: 27.01.2005
Адрес: Россия, КЧР, Нижний Архыз
Сообщений: 3,581
Сказал спасибо: 115
Сказали Спасибо 806 раз(а) в 583 сообщении(ях)
eddy на пути к лучшему
По умолчанию Re: Термометр на МК Atmega8

Сообщение от IOPA4 Посмотреть сообщение
Заглянули бы в исходники, прежде чем раздавать эпитеты
Ну, звиняйте, далеко их искать пришлось.
Только я не увидел исходников работы с DS18.
Сообщение от mimuh64 Посмотреть сообщение
нужно запрещать прерывание на момент чтения и записи битов в ds18b20.
Да не нужно там ничего запрещать, просто аппаратно сделать: через таймер с DMA или UART с DMA. Если в выбранном МК нет DMA, то можно сделать на таймере с прерываниями.
Как в данном случае это реализовано, непонятно: исходников нет.
__________________
Смерть бандеровской мразоте!
eddy на форуме  
Непрочитано 20.11.2018, 15:06  
mimuh64
Прописка
 
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
mimuh64 на пути к лучшему
По умолчанию Re: Термометр на МК Atmega8

Сообщение от eddy Посмотреть сообщение
Да не нужно там ничего запрещать, просто аппаратно сделать: через таймер с DMA или UART с DMA. Если в выбранном МК нет DMA, то можно сделать на таймере с прерываниями.
При такой реализации - нужно... Тем более нужно знать что такое mega8... и что там есть...
mimuh64 вне форума  
Сказали "Спасибо" mimuh64
Santil@ (20.11.2018)
Непрочитано 20.11.2018, 15:49  
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию Re: Термометр на МК Atmega8

Сообщение от mimuh64 Посмотреть сообщение
Гашение знакомест, запись сегментов, включение знакомест...
Изначально было сделано так, как вы подсказали, но чтобы максимально ускорить динамическую индикацию, убрал все лишние телодвижения. Глаз это мерцание не заметит. DMA у Atmegа нет, но с помощью прерывания, процессы считывания и обновления LCD распараллелены. Пробовал запрещать прерывания во время чтения датчика, индикатор превращался в "стробоскоп". В послдней прошивке сбоев Proteus я так и не увидел. Проверьте вы, именно этот cof. В этой прошивке осуществляется проверка корректности и если сбой запрашивается вновь. При достижении 10 ошибок выходит из процедуры с ожиданием 0.5 сек.
Миниатюры:
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 0
Размер:	29.1 Кб
ID:	135096  
Вложения:
Тип файла: zip Exe_Exe_8MHZ(CRC).zip (36.3 Кб, 0 просмотров)
IOPA4 вне форума  
Сказали "Спасибо" IOPA4
Santil@ (20.11.2018)
Непрочитано 20.11.2018, 16:28  
mimuh64
Прописка
 
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
mimuh64 на пути к лучшему
По умолчанию Re: Термометр на МК Atmega8

Блин... сейчас там длинный период опроса Вы установили... не хватит терпения...
Да... контроль по CRC устранит сбои, но не устранит частый запрос, если сбои происходят, то Вы опять запросите конвертацию показаний..., а это разогрев датчика. С такой библиотекой нужно уходить от прерываний и построить программу так, что бы это "блым" было только перед отображением. Все равно идет смена показаний. Поэтому затухание перед сменой показаний будет само собой понятное действие... Ну, как-то так...
mimuh64 вне форума  
Непрочитано 20.11.2018, 16:55  
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию Re: Термометр на МК Atmega8

Ну тогда еще вариант, информация при ошибочном чтении не обновляется, только когда корректное чтение. Т.к. ошибка может возникнуть не часто, думаю, что это оптимальный вариант. Нужно, чтобы ТС протестировал и отписался.
Вложения:
Тип файла: zip Exe_Exe_8MHZ(rezume CRC).zip (19.1 Кб, 0 просмотров)

Последний раз редактировалось IOPA4; 20.11.2018 в 17:00.
IOPA4 вне форума  
Сказали "Спасибо" IOPA4
Santil@ (20.11.2018)
Непрочитано 20.11.2018, 17:23  
mimuh64
Прописка
 
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
mimuh64 на пути к лучшему
По умолчанию Re: Термометр на МК Atmega8

Сообщение от IOPA4 Посмотреть сообщение
Т.к. ошибка может возникнуть не часто...
Ошибки будут возникать часто... У тебя там два прерывания... И еще ты увеличил частоту вывода знакоместа в несколько раз... Зачем?
Для интереса могу предложить такой вариант на 8 Мгц. Там опрос датчика частый - для примера (так нельзя делать)... Только ТС пусть конфигурацию правильно установит по ресету...
Вложения:
Тип файла: rar DS18b20_M8.rar (2.5 Кб, 0 просмотров)

Последний раз редактировалось mimuh64; 20.11.2018 в 17:35.
mimuh64 вне форума  
Эти 2 пользователя(ей) сказали Спасибо mimuh64 за это сообщение:
IOPA4 (20.11.2018), Santil@ (20.11.2018)
Непрочитано 20.11.2018, 18:47  
Santil@
Почётный гражданин KAZUS.RU
 
Регистрация: 13.04.2016
Адрес: 82в.д.55с.ш.
Сообщений: 1,244
Сказал спасибо: 246
Сказали Спасибо 411 раз(а) в 244 сообщении(ях)
Santil@ на пути к лучшему
По умолчанию Re: Термометр на МК Atmega8

Сообщение от eddy Посмотреть сообщение
Не нужно ожидать от DS18 точности выше 0.5°C, не способны они на это! Даже если откалибруете, все равно через некоторое (сравнительно небольшое) время они пойдут вразнобой.
Меня устроит и +/- 1 град., ну а если будет +/- 0,5 град. то это будет ещё лучше. Я хочу сделать термометр не для того, что бы контролить запредельные минусовые температуры азота или "домашней сталеплавильной печи", а для того что бы применять этот термометр на даче.
Последняя прошивка из поста №66
Фьюз: м: 0xE4 с: 0xD9
Результат.
Знак минус более не светится. Реакция на кнопку выбора датчика такая: нажал, светодиод переключился показания сменились с маломальской задержкой и тут же происходит возврат к пред идущим показаниям и включению пред идущего светодиода; для того что бы показания зафиксировались от другого датчика необходимо нажать кнопку три раза. То есть: нажал кнопку индикация сменилась вкл. HL1, через 1 секунду индикация возвращается и вкл. HL2, и так нужно сделать ровно три раза после чего фиксируется индикация от другого датчика. Иногда получалось так, что после двух нажатий на кнопку фиксировались показания от другого датчика.
Фото осциллограмм.
Фото 1. Между одной парой пачек данных по фронту 848 ms.
Фото 2. Между двух пар пачек период 11,2секунды.
Сейчас по пробую остальные самые свежие прошивки.

у меня схема с общим КАТОДОМ.
Миниатюры:
Нажмите на изображение для увеличения
Название: фото 1.JPG
Просмотров: 0
Размер:	396.4 Кб
ID:	135104   Нажмите на изображение для увеличения
Название: фото 2.JPG
Просмотров: 0
Размер:	386.1 Кб
ID:	135105  

Последний раз редактировалось Santil@; 20.11.2018 в 18:53.
Santil@ вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Atmega8 термометр Gizmors Микроконтроллеры, АЦП, память и т.д 77 13.12.2014 15:33
Термометр на Atmega8 Mishanya_82 Песочница (вопросы новичков) 2 25.01.2014 18:14
Взаимозаменяемы ли ATmega8 и Attiny2313 rusentu Микроконтроллеры, АЦП, память и т.д 17 21.08.2010 18:41
ATMega8 VS USB SkyProc Микроконтроллеры, АЦП, память и т.д 28 28.04.2010 17:01
Котроллер дисплея на Atmega8 kosant Микроконтроллеры, АЦП, память и т.д 24 30.11.2009 20:57


Часовой пояс GMT +4, время: 21:05.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot