|
терморегулятор, помогите |
|
|
|
Jul 30 2008, 12:01
|
Частый гость
 
Группа: Участник
Сообщений: 168
Регистрация: 25-04-08
Пользователь №: 37 091

|
Собираю терморегулятор. Готова динамическая индикация (спасибо форумчанам). Теперь проблема с АЦП. Цитата /***************************************************** Chip type : ATmega16 Clock frequency : 1,000000 MHz *****************************************************/ #include <mega16.h> char Dig[10]; // Массив, с кодами чисел для индикатора с общим анодом char i=0; // счетчик для переключения анодов char e=0; // единицы установленной температуры char d=0; // десятки char s=0; // сотни char s2=0; // единицы измеренной температуры char e2=0; // десятки char d2=0; // сотни char res=0; // в эту переменную поочереди записываются e,d,s или e2,d2,s2 char keys_prev=0; // две переменной для правильной работы кнопок char keys_now=0; // unsigned int current_temp=0; // измеренная температура short temp2=0; // временная переменная short set_temp=0; // установленная температура
char num (void) { // функция, для опроса клавиатуры, и вывода на катоды кода текущего разряда if (PINB.4!=0){ // если кнопка "нагрев" не нажата, то if ((keys_prev!=keys_now)&(PINB.0==0)) e++; // если нажата кнопка "единицы", то прибавить 1 к нулевому разряду (единицы) if (e==10) e=0; // если результат прибавления перевалил за 9, то сбросить его в нуль if ((keys_prev!=keys_now)&(PINB.1==0)) d++; // если нажата кнопка "десятки", то прибавить 1 к первому разряду (десятки) if (d==10) d=0; // если результат прибавления перевалил за 9, то сбросить его в нуль if ((keys_prev!=keys_now)&(PINB.2==0)) s++; // если нажата кнопка "сотни", то прибавить 1 к второму разряду (сотни) if (s==3) s=0; // если результат прибавления перевалил за 9, то сбросить его в нуль if (PINB.3==0) { // если нажата кнопка "сброс", то сбросить все разряды в нуль e=0; d=0; s=0;} switch (i) { // в зависимости от переменной i выбираем что показываем в текущий момент: единицы, десятки, или сотни case 0: res=e; break; case 1: res=d; break; case 2: res=s; break; } return res;} else { // если нажата кнопка "нагрев", то
current_temp=ADCL; // в переменную записываем значение из регистра ADCL current_temp+=((int)ADCH << 8); // прибавляем к переменной значение из регистра ADCH со сдвигом влево на 8 разрядов current_temp=current_temp/2.5; // преобразовываем (ADCH ADCL) в температуру. Т.к. используется внутренний ИОН 2560 мВ, то 2560/1024=2.5 e2=current_temp%10; // получаем единицы измеренной температуры temp2=current_temp/10; // промежуточная операция, для понижения степени d2=temp2%10; // получаем десятки измеренной температуры s2=temp2/10; // получаем сотни измеренной температуры // в зависимости от переменной i выбираем что показываем в текущий момент времени switch (i) { case 0: res=e2; break; case 1: res=d2; break; case 2: res=s2; break; } return res;
;}} // Timer 0 output compare interrupt service routine interrupt [TIM0_COMP] void timer0_comp_isr(void) //обработка прерывания таймера по совпадению с OCR0 { keys_prev=keys_now; //для клавиш keys_now=PINB; //читаем что нажато if (i==3) i=0; //если показатель текущего разряда перевалил за 2, то зажигаем нулевой разряд PORTC=Dig[num()]; //выставляем на катодах число, которое получаем из функции num() switch (i) { //в зависимости от переменной i поочередно подаем питание на аноды case 0: //если i=0, то включаем разряд для единиц PORTD.1=1; //гасим ненужные разряды PORTD.2=1; PORTD.0=0; //включаем нулевой разряд, активный уровень - 0,т.к. используются p-n-p break; case 1: // и т.д. PORTD.0=1; PORTD.2=1; PORTD.1=0; break; case 2: PORTD.0=1; PORTD.1=1; PORTD.2=0; break;} i++; }
// Declare your global variables here
void main(void) { PORTA=0x00; DDRA=0x00; PORTB=0xFF; DDRB=0x00; PORTC=0x00; DDRC=0xFF; PORTD=0x00; DDRD=0xFF;
// Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 0,977 kHz // Mode: Normal top=FFh // OC0 output: Disconnected TCCR0=0x0D; TCNT0=0x00; OCR0=0x03; //задаем частоту развертки. подбирал наглаз.
// Timer/Counter 1 initialization TCCR1A=0x00; TCCR1B=0x00; TCNT1H=0x00; TCNT1L=0x00; ICR1H=0x00; ICR1L=0x00; OCR1AH=0x00; OCR1AL=0x00; OCR1BH=0x00; OCR1BL=0x00;
// Timer/Counter 2 initialization ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00;
// External Interrupt(s) initialization MCUCR=0x00; MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x02;
// Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // free running режим АЦП ADMUX=0xC0; // Внутренний источник опорного напряжения 2.56В REFS1..0=1; правое выравнивание ADLAR=0,вход ADC0 ADCSRA=0xE4; //ADEN=1(включили АЦП),ADSC=1(начали преобразование),ADATE:1(авто триггер включен),ADIE=0(прерывания от АЦП нам не нужны), делитель на 16
// заполняем массив комбинациями нулей/единиц для катодов Dig[0] = 0xC0; Dig[1] = 0xF9; Dig[2] = 0xA4; Dig[3] = 0xB0; Dig[4] = 0x99; Dig[5] = 0x92; Dig[6] = 0x82; Dig[7] = 0xF8; Dig[8] = 0x80; Dig[9] = 0x90;
#asm("sei") // включаем прерывания while (1) { if (PINB.4==0) { // если нажата кнопка "нагрев", то set_temp=e+d*10+s*100; // вычисляем установленную температуру, исходя из того, что в переменных e,d,s if (current_temp<(set_temp-1)) {PORTD.3=1;}; //если текущая температура ниже установленной на 1 градус, то включаем релюшку if (current_temp>=set_temp) {PORTD.3=0;};} //если текущая температура больше или равна установленной, то выключаем релюшку else {PORTD.3=0;}; }; //если кнопка "нагрев" не нажата, то реле должно быть выключенным. } // game over почему-то в Proteus переменные e2,s2,d2 неправильно считаются. Залил в мегу - на индикаторе 409. Когда использовал прерывание АЦП, то у меня все работало. Но хочется упростить немного код (пусть хоть потребляет больше) Схемку прилагаю. Подскажите что не так, я уже не знаю чего делать.
Эскизы прикрепленных изображений
|
|
|
|
|
 |
Ответов
|
Jul 31 2008, 11:57
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(Lost_Viking @ Jul 31 2008, 14:19)  Теперь заметил проблему: все время скачет младшая цифра, причем очень быстро. 1. TL431 ему в опору, чтоб не баловался. 2. Noise canceler ему в мозги, иначе у младшего разряда нервный тик не пройдет. 3. Накопление методом скользящего среднего вне зависимости от того, удался ли п.2. Что же Вы, уважаемый, плохо воспитываете свой девайс ?
|
|
|
|
|
Jul 31 2008, 14:47
|
Частый гость
 
Группа: Участник
Сообщений: 168
Регистрация: 25-04-08
Пользователь №: 37 091

|
Цитата(_Pasha @ Jul 31 2008, 15:57)  1. TL431 ему в опору, чтоб не баловался. 2. Noise canceler ему в мозги, иначе у младшего разряда нервный тик не пройдет. 3. Накопление методом скользящего среднего вне зависимости от того, удался ли п.2. Что же Вы, уважаемый, плохо воспитываете свой девайс ?  1. насчет TL431 мне тоже пришла идея. А 78L05 пойдет? Только я не помню: 78 - это для плюса, а 79 - это для минуса? Или наоборот? 2. шозах?  что-то слышал об этом, вроде даже в даташите. 3. По-подробнее плиз. Сдается мне, что в этом пункте я еще больше внесу погрешность измерения. Просто я пока еще молодой папа  Цитата(defunct @ Jul 31 2008, 16:04)  Иными словами в левой схеме положение переменного резистора может управлять только лаем собак на луну. подтверждаю  Хотя немножко напряжение на входе АЦП регулировалось. Совсем чуть-чуть. Переменник 2.4кОм. Цитата(xemul @ Jul 31 2008, 17:01)  Типовое значение для входного сопротивление АЦП указано в таблице "ADC Characteristics" как 100 МОм. предлагаю Мегометром брякнуть его  Нашел я инфу про ADC Noise Reduction. Как стремно это дело работает: все выключается на время преобразования. Бррр... Щаззз проверим.
Сообщение отредактировал Lost_Viking - Jul 31 2008, 14:01
Эскизы прикрепленных изображений
|
|
|
|
|
Jul 31 2008, 14:54
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(Lost_Viking @ Jul 31 2008, 18:47)  3. По-подробнее плиз. Сдается мне, что в этом пункте я еще больше внесу погрешность измерения. Это будет погрешность обработки. Если будете правильно округлять, то внесете не более 0.5 LSB. Цитата предлагаю Мегометром брякнуть его  Есть китайские мультиметры с пределом 200 МОм, на шупах при этом не более 2 В. Корректнее по отношению к АЦП измерять его входной ток, а дальше по закону Ома относительно AVcc/2.
|
|
|
|
|
Jul 31 2008, 15:29
|
Частый гость
 
Группа: Участник
Сообщений: 168
Регистрация: 25-04-08
Пользователь №: 37 091

|
Цитата(xemul @ Jul 31 2008, 18:54)  Это будет погрешность обработки. Если будете правильно округлять, то внесете не более 0.5 LSB. можешь хотя бы примерно рассказать про данный метод? или, хотя бы, алгоритм если есть. Цитата(xemul @ Jul 31 2008, 18:54)  Есть китайские мультиметры с пределом 200 МОм, на шупах при этом не более 2 В. Корректнее по отношению к АЦП измерять его входной ток, а дальше по закону Ома относительно AVcc/2. у меня есть советский измеритель сопротивления изоляции. там ручка есть такая волшебная: раскручиваешь ее, и на выходе привет  сдается мне, что придется опять использовать прерывание АЦП. Это даже к лучшему. Мне вот что интересно: когда я начинаю читать данные из ADCL, то работа АЦП останавливается, пока я не прочту данные из ADCH? Так или нет? Кстати, катушку поставил с индуктивностью 40мкГн, а емкость 0.1мкФ. Такие номиналы вычитал где-то в инете. Просто катушку 10мкГн не нашел
Сообщение отредактировал Lost_Viking - Jul 31 2008, 15:41
|
|
|
|
|
Jul 31 2008, 17:17
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(Lost_Viking @ Jul 31 2008, 19:29)  можешь хотя бы примерно рассказать про данный метод? или, хотя бы, алгоритм если есть. Метод - просто какой-либо НЧ фильтр в цифре. Простейший НЧ фильтр 1-го порядка: Yi = a * Yi-1 + b * Xi, a+b = 1 Т.е. Код Y = a * Y + b * X; Для целочисленной арифметики удобно делать a=c/2^N, b=(2^N-c)/2^N. Чтобы не набегала погрешность при обработке, разрядность Y должна быть не менее (разрядность X) + N. Найдите что-нибудь вроде "Цифровые фильтры" Р. Хемминга - там все доступно.
|
|
|
|
|
Jul 31 2008, 21:10
|
Частый гость
 
Группа: Участник
Сообщений: 168
Регистрация: 25-04-08
Пользователь №: 37 091

|
Цитата(xemul @ Jul 31 2008, 21:17)  Метод - просто какой-либо НЧ фильтр в цифре. Простейший НЧ фильтр 1-го порядка: Yi = a * Yi-1 + b * Xi, a+b = 1 Т.е. Код Y = a * Y + b * X; Для целочисленной арифметики удобно делать a=c/2^N, b=(2^N-c)/2^N. что такое a и b? для чего они нужны? как я понял - это Взвешенное скользящее среднее (WMA), взято от сюда
|
|
|
|
|
Jul 31 2008, 21:29
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(Lost_Viking @ Aug 1 2008, 01:10)  что такое a и b? для чего они нужны? как я понял - это Взвешенное скользящее среднее (WMA), взято от сюдаНет, это Экспоненциальное скользящее среднее (EMA) Yi = Yi-1 + A*(Xi - Yi-1). С помощью несложных преобразований можно показать, что a = 1 - A, b = A. оттуда жеЦитата В случае EMA, коэффициент A - параметр фильтра, определяющий степень сглаживания. Чем он меньше, тем сильнее будет сглаживаться входной временной ряд. При A=0 фильтр перестает реагировать на изменения входного ряда, а при A=1 он будет повторять входной временной ряд. Попробуйте смоделировать (хоть в ёкселе) реакцию фильтра на единичный скачок (x=0 при i<0, x=1 при i>=0), поиграйтесь с A, и все станет просто и понятно.
|
|
|
|
|
Aug 4 2008, 18:56
|
Частый гость
 
Группа: Участник
Сообщений: 168
Регистрация: 25-04-08
Пользователь №: 37 091

|
Цитата(xemul @ Aug 1 2008, 01:29)  Попробуйте смоделировать (хоть в ёкселе) реакцию фильтра на единичный скачок (x=0 при i<0, x=1 при i>=0), поиграйтесь с A, и все станет просто и понятно.  и уважуха! Все, теперь я знаю "Простое скользящее среднее", "Взвешенное скользящее среднее" и "Экспоненциальное скользящее среднее". Возникло сразу несколько вопросов: (WMA) - как правильно рассчитать коэффициенты? Я пока беру 4 отсчета, соответственно ставлю 1/4. (EMA) - было бы интересно привязать коэфф. "А" к помехам, т.е. если вдруг начинается частое мельтишение младших разрядов, то уменьшить А.
|
|
|
|
|
Aug 4 2008, 20:57
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(Lost_Viking @ Aug 4 2008, 18:56)  Все, теперь я знаю "Простое скользящее среднее", "Взвешенное скользящее среднее" и "Экспоненциальное скользящее среднее". Бугагага: // SMA - Simple Moving Average // EMA - Exponential Moving Average // WMA - Weighted Moving Average // DEMA - Double Exponential Moving Average // TEMA - Triple Exponential Moving Average // TRIMA - Triangular Moving Average // KAMA - Kaufman Adaptive Moving Average // MAMA - MESA Adaptive Moving Average // T3 - Triple Exponential Moving Average
|
|
|
|
|
Aug 5 2008, 07:05
|
Частый гость
 
Группа: Участник
Сообщений: 168
Регистрация: 25-04-08
Пользователь №: 37 091

|
Цитата(Огурцов @ Aug 5 2008, 00:57)  Бугагага: // SMA - Simple Moving Average // EMA - Exponential Moving Average // WMA - Weighted Moving Average // DEMA - Double Exponential Moving Average // TEMA - Triple Exponential Moving Average // TRIMA - Triangular Moving Average // KAMA - Kaufman Adaptive Moving Average // MAMA - MESA Adaptive Moving Average // T3 - Triple Exponential Moving Average пилять! Вопрос такой: при использовании EMA метода, коэфф-т A должен быть вещественным. Т.е. в итоге функция получается вещественной. Но у меня дальше идет оператор "остаток от деления". Как мне согласовать вщественный тип с получением остатка от деления? Простое приведение типов не катит - нет округления. Т.е. мне нужно вещественное число округлить, а потом это число привести в целый тип. Как это реализовать на Си?
|
|
|
|
|
Aug 5 2008, 09:04
|
    
Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731

|
Цитата(Lost_Viking @ Aug 5 2008, 11:05)  Вопрос такой: при использовании EMA метода, коэфф-т A должен быть вещественным. Т.е. в итоге функция получается вещественной. Но у меня дальше идет оператор "остаток от деления". Как мне согласовать вщественный тип с получением остатка от деления? Простое приведение типов не катит - нет округления. Т.е. мне нужно вещественное число округлить, а потом это число привести в целый тип. Как это реализовать на Си? Помните, что такое подмножество рациональных чисел? Правильно, это подмножество чисел, которые могут быть представлены в виде отношения (ratio = дробь, отношение) двух целых чисел. И примерно в то же время Вам должны были сообщить, что любое вещественное число может быть с любой точностью приближено рациональным (хотя нет - года на 3-4 позже). Дальше сами догадаетесь? Это в качестве посказки: Цитата(xemul @ Jul 31 2008, 21:17)  Простейший НЧ фильтр 1-го порядка: Yi = a * Yi-1 + b * Xi, a+b = 1 Т.е. Код Y = a * Y + b * X; Для целочисленной арифметики удобно делать a=c/2^N, b=(2^N-c)/2^N. Чтобы не набегала погрешность при обработке, разрядность Y должна быть не менее (разрядность X) + N. Y = a * Y + b * X; // это фильтр на С; X - новое входное значение, Y - справа предыдущее выходное значение, слева - новое. Цитата(xemul @ Jul 31 2008, 22:10)  Код u16_t Yavg;
for(;;) { Yavg -= Yavg/256; Yavg += ADCH; } А это целочисленная реализация приведенного выше фильтра с коэффиентами a=255/256, b=1/256. Ну и уж совсем на всякий случай: деление целого числа на 2^N компилятор заменит на N сдвигов вправо. 256 = 2^8. ЗЫЖ я к своему детенышу (которому, думаю, примерно столько же годочков, сколько и Вам) за серьезной беседой обращаюсь на "Вы". ЗЗЫЖ радует, что в Ваших постах не так уж много проблем с русским языком.
|
|
|
|
Сообщений в этой теме
Lost_Viking терморегулятор Jul 30 2008, 12:01 AHTOXA Цитата(Lost_Viking @ Jul 30 2008, 18:01) ... Jul 30 2008, 12:31 MrYuran Кодcurrent_temp=current_temp/2.5; // преобразовыва... Jul 30 2008, 12:40 domowoj Протеус 7.2 .2 с авр работает глючно!!... Jul 30 2008, 15:26 =GM= Цитата(Lost_Viking @ Jul 30 2008, 11:01) ... Jul 30 2008, 15:50 Lost_Viking Цитата(=GM= @ Jul 30 2008, 19:50) У вас н... Jul 30 2008, 17:04  AHTOXA Цитата(Lost_Viking @ Jul 30 2008, 23:04) ... Jul 30 2008, 17:31   Lost_Viking Цитата(AHTOXA @ Jul 30 2008, 21:31) А как... Jul 30 2008, 18:56    AVRdeveloper Цитата(Lost_Viking @ Jul 30 2008, 21:56) ... Jul 31 2008, 06:26     Lost_Viking Цитата(AVRdeveloper @ Jul 31 2008, 10:26)... Jul 31 2008, 10:08      AHTOXA Цитата(Lost_Viking @ Jul 31 2008, 16:08) ... Jul 31 2008, 10:53       Lost_Viking Цитата(AHTOXA @ Jul 31 2008, 14:53) А в и... Jul 31 2008, 11:19    MrYuran Цитата(Lost_Viking @ Jul 30 2008, 22:56) ... Jul 31 2008, 06:42     Lost_Viking Цитата(MrYuran @ Jul 31 2008, 10:42) Я чт... Jul 31 2008, 10:55      MrYuran Цитата(Lost_Viking @ Jul 31 2008, 14:55) ... Jul 31 2008, 11:05  defunct Цитата(Lost_Viking @ Jul 30 2008, 20:04) ... Jul 30 2008, 17:45 GDI ЦитатаВ левой схеме тоже получается делитель, но е... Jul 31 2008, 11:11 defunct Цитата(GDI @ Jul 31 2008, 14:11) Отнють н... Jul 31 2008, 11:55  xemul Цитата(defunct @ Jul 31 2008, 15:55) Посм... Jul 31 2008, 13:01 AHTOXA Цитата(GDI @ Jul 31 2008, 17:11) Отнють н... Jul 31 2008, 11:37 GDI Хочу уточнить чтобы не было иллюзий. В левой схеме... Jul 31 2008, 11:56 defunct Цитата(GDI @ Jul 31 2008, 14:56) P.S. Вхо... Jul 31 2008, 12:04  MrYuran Цитата(defunct @ Jul 31 2008, 16:04) Для ... Jul 31 2008, 12:09   defunct Цитата(MrYuran @ Jul 31 2008, 15:09) Даже... Jul 31 2008, 12:10           Lost_Viking Цитата(xemul @ Aug 5 2008, 13:04) ЗЫЖ я к... Aug 5 2008, 14:50            rezident Цитата(Lost_Viking @ Aug 5 2008, 20:50) К... Aug 5 2008, 15:00             Lost_Viking Цитата(rezident @ Aug 5 2008, 19:00) Кста... Aug 5 2008, 17:14         Tanya Цитата(Огурцов @ Aug 5 2008, 00:57) Бугаг... Aug 5 2008, 16:00  sKWO Цитата(Lost_Viking @ Jul 31 2008, 17:47) ... Jul 31 2008, 17:05   Lost_Viking Цитата(sKWO @ Jul 31 2008, 21:05) очень п... Jul 31 2008, 17:38    xemul Цитата(Lost_Viking @ Jul 31 2008, 21:38) ... Jul 31 2008, 18:10     Lost_Viking Цитата(xemul @ Jul 31 2008, 22:10) Операц... Jul 31 2008, 18:50      Stanislav_S Цитата(Lost_Viking @ Jul 31 2008, 23:50) ... Jul 31 2008, 20:24      xemul Цитата(Lost_Viking @ Jul 31 2008, 22:50) ... Jul 31 2008, 20:48       rezident Цитата(xemul @ Aug 1 2008, 02:48) Да тупо... Jul 31 2008, 22:17 domowoj Цитата(_Pasha @ Jul 31 2008, 18:57) 1. TL... Aug 3 2008, 06:25  Lost_Viking Цитата(domowoj @ Aug 3 2008, 10:25) 1.ТЛк... Aug 3 2008, 14:01 GDI Заглянул в даташит на atmega48_68_168, там указано... Jul 31 2008, 12:37 GDI У атмела есть апликэйшены на темы:
AVR222: 8-Point... Aug 1 2008, 06:54 Lost_Viking Такс, собираю ИОН на TL431OEB. Насколько хорош это... Aug 1 2008, 10:43 MrYuran А может даласовские датчики поставить и не мучитьс... Aug 1 2008, 10:50 Lost_Viking Цитата(MrYuran @ Aug 1 2008, 14:50) А мож... Aug 1 2008, 13:46  xemul Цитата(Lost_Viking @ Aug 1 2008, 17:46) К... Aug 1 2008, 14:54  rezident Цитата(Lost_Viking @ Aug 1 2008, 19:46) К... Aug 1 2008, 15:52  _Pasha Цитата(Lost_Viking @ Aug 1 2008, 17:46) З... Aug 1 2008, 17:30   xemul Цитата(_Pasha @ Aug 1 2008, 21:30) Какая ... Aug 1 2008, 18:01    _Pasha Цитата(xemul @ Aug 1 2008, 22:01) ADLAR=1... Aug 1 2008, 18:19    Lost_Viking Цитата(xemul @ Aug 1 2008, 22:01) ADLAR=1... Aug 1 2008, 21:47 domowoj Lost_Viking
А мож Вам лучше DS18x20 применить, ник... Aug 2 2008, 11:26 Lost_Viking Цитата(domowoj @ Aug 2 2008, 15:26) Lost_... Aug 2 2008, 15:27  Огурцов Цитата(Lost_Viking @ Aug 2 2008, 15:27) М... Aug 3 2008, 12:32 domowoj Хотя бы REF02.
Я бы вообще выключил все генератор... Aug 3 2008, 15:05 Lost_Viking Цитата(domowoj @ Aug 3 2008, 19:05) а 102... Aug 3 2008, 15:18 domowoj Lost_Viking
Может лучше применить ЖК индикатор. Aug 3 2008, 15:31 Lost_Viking Цитата(domowoj @ Aug 3 2008, 19:31) Lost_... Aug 3 2008, 15:46  rezident Цитата(Lost_Viking @ Aug 3 2008, 21:46) P... Aug 3 2008, 17:34 domowoj EXCEL не знаю.
А ЖК от чего? Aug 3 2008, 17:17 Lost_Viking Цитата(domowoj @ Aug 3 2008, 21:17) А ЖК ... Aug 3 2008, 19:56  rezident Цитата(Lost_Viking @ Aug 4 2008, 01:56) с... Aug 3 2008, 20:38 domowoj ADC=1023*Vin/Vref
так будет понятней. Aug 3 2008, 17:43 Lost_Viking вопрос остается открытым: почему в Даташите в этой... Aug 3 2008, 22:34 rezident Цитата(Lost_Viking @ Aug 4 2008, 04:34) в... Aug 4 2008, 16:01 domowoj Если в даташите написано - верь,
но тогда диапазон... Aug 4 2008, 00:13 Dopler Цитатаwhere VIN is the voltage on the selected inp... Aug 4 2008, 08:13 Lost_Viking Цитата(Dopler @ Aug 4 2008, 12:13) Вот чт... Aug 4 2008, 14:39  _Pasha Цитата(Lost_Viking @ Aug 4 2008, 17:39) П... Aug 5 2008, 23:40 Lost_Viking Так, все сделал. Сглаживает здорово!
Огурцов,... Aug 5 2008, 08:16 Огурцов Цитата(Lost_Viking @ Aug 5 2008, 08:16) О... Aug 5 2008, 14:41 domowoj Усреднение не всегда есть хорошо.
Если есть время(... Aug 5 2008, 16:41 rezident Цитата(domowoj @ Aug 5 2008, 22:41) мз ма... Aug 5 2008, 17:00 xemul Цитата(domowoj @ Aug 5 2008, 20:41) Усред... Aug 5 2008, 21:55  domowoj Цитата(xemul @ Aug 6 2008, 04:55) Вы пред... Aug 6 2008, 00:54 domowoj Да нет, похоже не медианная. Aug 5 2008, 17:25 rezident Цитата(domowoj @ Aug 5 2008, 23:25) Да не... Aug 5 2008, 17:49 xemul Цитата(_Pasha @ Aug 6 2008, 03:40) Блин, ... Aug 6 2008, 07:54 domowoj Цитата(xemul @ Aug 6 2008, 14:54) А зачем... Aug 6 2008, 15:22 Lost_Viking Сейчас с макетки на плату переведу, и займусь повы... Aug 6 2008, 15:05 loskun Lost_Viking как устройство, получилось?
Вот _http:... Sep 27 2008, 17:38 Twin_by Всем привет. Не стал создавать новую тему. У меня ... Oct 13 2016, 12:09 Dog Pawlowa Скорее всего отладчик неправильно отображает локал... Oct 14 2016, 15:05 Aldec Цитата(Lost_Viking @ Jul 30 2008, 12:01) ... Oct 21 2016, 07:27
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|