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

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

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

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

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

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

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

 
Опции темы
Непрочитано 11.12.2007, 01:05  
LeonR84
Прохожий
 
Регистрация: 09.12.2007
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LeonR84 на пути к лучшему
По умолчанию подскажите новичку (гистирезис бит)

Я на ATtiny 13 сделал АЦП и данные с АЦП передаю через интерфейс spi. сделал накопления (16) для избежания дребизга на выходе, но не помогает. Думаю что дело в гистирезисе только как реализовать программно на С только догадки. Подскажите пожалуйста. Заранее премного благодарен всем просветителям новичка.
Реклама:
LeonR84 вне форума  
Непрочитано 11.12.2007, 09:02  
nokazus
Вид на жительство
 
Регистрация: 05.09.2006
Сообщений: 360
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
nokazus на пути к лучшему
По умолчанию

Вот нарисован гистерезис. Если входная величина превышает какой-либо порог, то на выходе устанавливается другое устойчивое состояние. Переход в исходное состояние происходит при меньшем значении входной величины.
Что же Вы хотите? Что значит дребезг?
Удачи.

-- Прилагается рисунок: --
nokazus вне форума  
Непрочитано 11.12.2007, 11:01  
Popeye
Почётный гражданин KAZUS.RU
 
Аватар для Popeye
 
Регистрация: 05.08.2007
Адрес: Болгария Перник
Сообщений: 1,771
Сказал спасибо: 74
Сказали Спасибо 357 раз(а) в 245 сообщении(ях)
Popeye на пути к лучшему
По умолчанию

Схемку бы, от входа до вывода АЦП. Вам скорее всего шумы мешают.
__________________
Мыслю, следовательно существую
Popeye вне форума  
Непрочитано 11.12.2007, 11:02  
rremix
Временная регистрация
 
Регистрация: 01.11.2006
Сообщений: 66
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
rremix на пути к лучшему
По умолчанию

согласен с nokazus:
нчто вроде (пишу прямо в окне, потому может не быть ситаксиса)
Код:
void UpdateState(void){
  if (Val ‹ ((StateVal[i]+ StateVal[i+1])/2-k)
   &&
   (Val › ((StateVal[i]+ StateVal[i-1])/2+k)
     ){
     State = i;
   }
};
Суть такая :
Диапазоны значений выглядят так:
0000HHHH1111HHHH2222....
позиция символа - код АЦП, Цифры - интервалы стабильных значений, буквы Н - зоны гистерезиса.
В условии проверяем, лежит ли код АЦП в зоне стабильного состояния, и только в этом случае изменяем состояние. В противном случае (условие не выполняется, т.к. значение лежит в зоне гистерезиса), НЕ ИЗМЕНЯЕМ состояние (т.е. оставляем предыдущее значение).
rremix вне форума  
Непрочитано 11.12.2007, 17:01  
alkl
Временная регистрация
 
Регистрация: 14.04.2007
Сообщений: 65
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
alkl на пути к лучшему
По умолчанию

Чего за дребезг, и где? Ни чего не понятно.
Может тебе какое-нибудь усреднение сделать?
alkl вне форума  
Непрочитано 11.12.2007, 20:38  
LeonR84
Прохожий
 
Регистрация: 09.12.2007
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LeonR84 на пути к лучшему
По умолчанию

дребезг это когда при постоянном сигнале на входе ацп на выходе прыгают биты (хотя не должны)
rremix большое спасибо за код
и еще если можно поподробнее описать условие
"(Val ‹ ((StateVal[i]+ StateVal[i+1])/2-k)"
как я понимаю Val это значение ацп
а дальше не совсем понятно
LeonR84 вне форума  
Непрочитано 11.12.2007, 22:40  
LeonR84
Прохожий
 
Регистрация: 09.12.2007
Сообщений: 4
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LeonR84 на пути к лучшему
По умолчанию

спасибо всем за внимание
нашел решение проблемы
наверно тоже самое что и код rremix но так я немножко "чайник" не понял полностью его
LeonR84 вне форума  
Непрочитано 17.12.2007, 16:25  
rremix
Временная регистрация
 
Регистрация: 01.11.2006
Сообщений: 66
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
rremix на пути к лучшему
По умолчанию

Ничего удивительного, что условие непонятно... я сам его не понял помню только - спать хотелось очень ))
Суть условия такова: имеется массив значений, являющихся серединами диапазонов, для которых определено состояние. Дальше надо проверить, как текущее значение относится к этому диапазону. т.е. вычисляем среднее арифметическое двух соседних значений (проверяемого и следующего) - получаем середину, т.е. в идеале - момент переключения. Потом вычитаем некотурую константу - т.е. половину зоны гистерезиса. То же самое делаем с предыдущим (перед проверяемым) значением. Тагим образом появляется понятие "диапазон значений, при которых ТОЧНО пора переключаться". И вторично появляется диапазон значений, при которых ни одно из условий (при выполнении всего цикла проверки) не выполняется (т.к. лежат к сред. арифм. между значениями ближе, чем константа). Они обозначены в пред. посте буквами H.
Вот при этих значениях просто ничего не делаем.
Есть и другие способы (напр. задавать границы, а не середины, и вычитать/добавлять конст. к значению границ). Но суть та же. Не забываем про инициализацию (т.е. что надо делать, если при включении контроллера значение лежит в зоне гистерезиса).
rremix вне форума  
Непрочитано 17.12.2007, 17:42  
Kabron
Почётный гражданин KAZUS.RU
 
Аватар для Kabron
 
Регистрация: 12.11.2004
Адрес: Москва
Сообщений: 8,535
Сказал спасибо: 698
Сказали Спасибо 4,313 раз(а) в 1,977 сообщении(ях)
Kabron на пути к лучшему
По умолчанию

Кстати, об измерениях. Всем советую почитать литературу на тему "Improving ADC Resolution By Oversampling".

http://www.yandex.ru/yandsearch?text...mpling&rpt=rad

http://www.google.com/search?ie=UTF-...20Oversampling

Есть статьи от Атмела, Cygnal, Silabs,
Texas I, Actel. Идея в том что можно реально повысить разрядность АЦП на 2-3 и более разрядов применяя множественные измерения и обрабарывая результаты довольно простым образом. Сам этим давно пользуюсь. К тому же фильтрация и усредение получаются автоматически.
Kabron вне форума  
Непрочитано 18.12.2007, 14:57  
alkl
Временная регистрация
 
Регистрация: 14.04.2007
Сообщений: 65
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
alkl на пути к лучшему
По умолчанию

Где-же ты раньше был ?
Как я понял вот это основное ? :

//////////////////////////////////////////////////
void ADC_isr (void) interrupt 15
{
static unsigned int_dec=256;

static long accumulator=0L;

ADCINT = 0;
accumulator += ADC0;
int_dec--;
if (int_dec == 0)
{
int_dec = 256;
result = accumulator ›› 4;
accumulator = 0L;
}
}
////////////////////////////////////////////////////
alkl вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подскажите новичку по MCS51 Diamanten Микроконтроллеры, АЦП, память и т.д 6 10.11.2008 09:29
Бит защиты 12F629 svn69 Микроконтроллеры, АЦП, память и т.д 4 10.07.2007 18:16
Подскажите, новичку, что за диод такой rr602 Информация по радиокомпонентам 13 21.12.2006 14:37
[Решено] Подскажите новичку Maxrg Делимся опытом 4 30.03.2006 12:25
Бит в переменной SerDV Микроконтроллеры, АЦП, память и т.д 3 18.11.2005 15:42


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


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