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

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

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

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

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

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

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 02.08.2012, 01:59  
Dimitrij
Временная регистрация
 
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
Dimitrij на пути к лучшему
По умолчанию Re: Помогите разобраться с кодом на СИ для ATmega8

Сообщение от ut1wpr Посмотреть сообщение
фазе написания программ и при первичной отладке лучше всего оптимизацию отключать вообще
В том и дело, что при отладке в Proteus все нормально.
Сообщение от omercury Посмотреть сообщение
Оно точно работает хоть как-нибудь?
Это мне посоветовали на форуме, делать задержку по циклам программы..
Опрос DS18B20 происходит где-то через 3 мин., а аналоговых датчиков около 30 сек.
Сообщение от _Артём_ Посмотреть сообщение
почему бы от какого-нибудь таймера не синхронизироваться?
Пробовал, но когда включаю прерывание по таймеру, результаты почему-то не выводятся?
Сообщение от _Артём_ Посмотреть сообщение
delay_us(10) - зачем? Помогает лучшие результаты получить?
(ADC_VREF_TYPE & 0xff) - тоже странно - какой смысл на байт маску из всех единиц накладывать?
Такой код выдает CodeVision AVR, с ним и без результат одинаков. Убрать не проблема.
Реклама:
Dimitrij вне форума  
Непрочитано 02.08.2012, 09:09  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Помогите разобраться с кодом на СИ для ATmega8

Сообщение от Dimitrij Посмотреть сообщение
Пробовал, но когда включаю прерывание по таймеру, результаты почему-то не выводятся?
В прерывании только инкремент счётчика системных часов. Максимум - ещё проверка задержек и установка флагов.
Видимо слетают тайминги вывода на LCD и опроса DS18.
Кстати - зачем определение адреса для единственного датчика на 1wire?
Хотя на фоне математики и sprintf это всё мелочи.
omercury вне форума  
Непрочитано 02.08.2012, 10:55  
ForcePoint
Почётный гражданин KAZUS.RU
 
Регистрация: 20.03.2007
Адрес: "Братское кольцо враждебности", т.е. ближайшее заМКАДье.
Сообщений: 6,916
Сказал спасибо: 2,980
Сказали Спасибо 3,161 раз(а) в 2,146 сообщении(ях)
ForcePoint на пути к лучшему
По умолчанию Re: Помогите разобраться с кодом на СИ для ATmega8

Сообщение от _Артём_ Посмотреть сообщение
delay_us(10) - зачем? Помогает лучшие результаты получить?
Требуется время на стабилизацию опорного источника (если он включается вместе с АЦП, а не был выбран ранее для BOD или аналогового компаратора). Для mega8A - до 70 мкС.
ForcePoint вне форума  
Непрочитано 02.08.2012, 18:47  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Помогите разобраться с кодом на СИ для ATmega8

Сообщение от ForcePoint Посмотреть сообщение
Требуется время на стабилизацию опорного источника (если он включается вместе с АЦП, а не был выбран ранее для BOD или аналогового компаратора). Для mega8A - до 70 мкС.
Не понял причём тут BOD?
Ну и источнику не надо постоянно стабилизироваться, а в функции delay_us(10) каждый раз.
_Артём_ вне форума  
Непрочитано 02.08.2012, 22:17  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,509 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию Re: Помогите разобраться с кодом на СИ для ATmega8

Сообщение от _Артём_ Посмотреть сообщение
Не понял причём тут BOD?
Да ни при чем, конечно... Просто ТС умыкнул из стандартного автогенератора кода КадАВРа коментарии, а там для этой задержки 10us прописано:
Цитата:
// Delay needed for the stabilization of the ADC input voltage
Сообщение от omercury Посмотреть сообщение
Кстати - зачем определение адреса для единственного датчика на 1wire?
Это то как раз действительно мелочь на фоне остального, да и единожды в начале запуска программы никогда не помешает, а вдруг мыши провод отгрызли...
Сообщение от Dimitrij Посмотреть сообщение
а аналоговых датчиков около 30 сек.
Ну, это ... как сказать. Цикл опроса, да, а в цикле Вы дрючите каналы АЦП по полной, причем не понятно зачем циклы for(i=0;i‹2;i++) для давления и температуры, если вы там ничего не усредняете. Напрашивается концовка некогда популярного политического анекдота: "а что, с одного раза его пристрелить нельзя было?"
To Dimitrij, Вы бы "причесали" слегка код и выложили бы файлом, ну хотя бы текстовым, а то портянку эту крутить в онлайн тоскливо, а еще лучше проектом того же Протеуса с КадАВРовским - ускорится процесс помощи.

Последний раз редактировалось Halex07; 02.08.2012 в 22:20.
Halex07 вне форума  
Непрочитано 03.08.2012, 01:21  
Dimitrij
Временная регистрация
 
Регистрация: 26.02.2005
Сообщений: 78
Сказал спасибо: 15
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
Dimitrij на пути к лучшему
По умолчанию Re: Помогите разобраться с кодом на СИ для ATmega8

Сообщение от Halex07 Посмотреть сообщение
не понятно зачем циклы for(i=0;i‹2;i++)
Мне посоветовали: для того, чтобы показания не так прыгали, пропустить первый замер и для расчетов использовать второй. Не уверен, правильно ли я сделал? Может хватит и одного замера?
Немного переписал программу, убрал подсчет циклов и задействовал таймер.
А как еще "причесать"?
Проект выкладываю.
Вложения:
Тип файла: rar Meteo.rar (41.3 Кб, 53 просмотров)

Последний раз редактировалось Dimitrij; 03.08.2012 в 01:24.
Dimitrij вне форума  
Непрочитано 03.08.2012, 01:51  
_Артём_
Гражданин KAZUS.RU
 
Регистрация: 16.03.2011
Сообщений: 486
Сказал спасибо: 8
Сказали Спасибо 131 раз(а) в 116 сообщении(ях)
_Артём_ на пути к лучшему
По умолчанию Re: Помогите разобраться с кодом на СИ для ATmega8

Сообщение от Dimitrij Посмотреть сообщение
Мне посоветовали: для того, чтобы показания не так прыгали, пропустить первый замер и для расчетов использовать второй. Не уверен, правильно ли я сделал?
Вроде правильно.
Можно еще несколько раз мерять с накоплением результата в сумму. И с ней работать.

Сообщение от Dimitrij Посмотреть сообщение
А как еще "причесать"?
Проект выкладываю.
Код:
char counter = 0;
char count = 0;
заменить на
Код:
volatile char counter = 0;
volatile char count = 0;
P.S. За форматирование следить тщательнее.
_Артём_ вне форума  
Непрочитано 03.08.2012, 08:49  
Vizitka
Почётный гражданин KAZUS.RU
 
Аватар для Vizitka
 
Регистрация: 11.01.2008
Адрес: Ковель UA
Сообщений: 1,063
Сказал спасибо: 154
Сказали Спасибо 540 раз(а) в 330 сообщении(ях)
Vizitka на пути к лучшему
По умолчанию Re: Помогите разобраться с кодом на СИ для ATmega8

Сообщение от Dimitrij Посмотреть сообщение
для того, чтобы показания не так прыгали
Где-то на просторах встретил , что в самом кристалле Меги8 есть внутренняя связь по питанию аналоговой и цыфровой части из-за чего наблюдается плавание измеряемых величин.Ага , нашел , цитата оттуда - http://easyelectronics.ru/podklyuche...ra-likbez.html
Warning!!!

В чипе Mega8 похоже есть ошибка на уровне топологии чипа — Vcc и AVcc связаны между собой внутри кристалла. Между ними сопротивление около (!!!) 5Ом Для сравнения, в ATmega16 и ATmega168 между Vcc и AVcc сопротивление в десятки МЕГА ом! В даташите на этот счет никаких указаний нет до сих пор, но в одном из топиков за 2004 год на AVRFreaks сказано, что люди бодались с цифровым шумом АЦП, потом написали в поддержку Atmel мол WTF??? А те, дескать, да в чипе есть бага и Vcc и AVcc соединены внутри кристалла. В свете этой инфы, думаю что ставить дроссель на AVcc для Mega8 практически бесполезно. Но AVcc запитывать надо в любом случае — кто знает насколько мощная эта внутренняя связь?
Vizitka вне форума  
Непрочитано 03.08.2012, 09:15  
ut1wpr
Почётный гражданин KAZUS.RU
 
Аватар для ut1wpr
 
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
ut1wpr на пути к лучшему
По умолчанию Re: Помогите разобраться с кодом на СИ для ATmega8

Сообщение от Dimitrij Посмотреть сообщение
Мне посоветовали: для того, чтобы показания не так прыгали, пропустить первый замер и для расчетов использовать второй. Не уверен, правильно ли я сделал? Может хватит и одного замера?
Немного переписал программу, убрал подсчет циклов и задействовал таймер.
А как еще "причесать"?
Проект выкладываю.
Подобное может иметь место только после переключения канала. В таком случае достаточно просто отработать преобразование не вычитывая результата. Если нужна высокая точность - работаем с любым из методов фильтрации. Естественно, теряя время на фильтрацию.
__________________
С уважением,
Vic / ut1wpr
ut1wpr вне форума  
Непрочитано 03.08.2012, 09:19  
dimanka
Временная регистрация
 
Регистрация: 30.03.2007
Адрес: Челябинск
Сообщений: 62
Сказал спасибо: 11
Сказали Спасибо 11 раз(а) в 9 сообщении(ях)
dimanka на пути к лучшему
По умолчанию Re: Помогите разобраться с кодом на СИ для ATmega8

for(i=0;i‹2;i++) для давления и температуры, если вы там ничего не усредняете. Напрашивается концовка некогда популярного политического анекдота: "а что, с одного раза его пристрелить нельзя было?"
To Dimitrij

А вот тут интересный момент в некоторых МК (AT32UC3Cxxxx) есть даже специальный битик. При его установке после переключения канала автоматически берётся только второе измерение. Утверждают как точнее получается.
dimanka вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться с таймером в Atmega8 artyomugr Микроконтроллеры, АЦП, память и т.д 83 21.07.2011 16:18
Помогите разобраться с кодом _grey_ Микроконтроллеры, АЦП, память и т.д 1 23.07.2010 19:16
mega8 помогите разобраться с кодом AGAT0365 Микроконтроллеры, АЦП, память и т.д 10 27.05.2010 16:08
Помогите разобраться с кодом Micro C for AVR deeman30rus Электроника - это просто 7 09.02.2010 11:46
помогите с кодом для АВР. язык си. Curt_atmel-proger Микроконтроллеры, АЦП, память и т.д 13 23.08.2007 20:53


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


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