Jump to content

si4karuk

Members
  • Content Count

    452
  • Joined

  • Last visited

Community Reputation

16 Обычный

About si4karuk

  • Rank
    Постоялец
  • Birthday 05/09/1985

Контакты

  • ICQ
    5911980

Информация

  • Пол
    Мужчина
  • Город
    Іванків київської обл.

Электроника

  • Стаж в электронике
    1-2 года
  • Сфера радиоэлектроники
    верстатобудування, автоматизація

Recent Profile Visitors

2357 profile views
  1. А зачем вы еще раз обьявляете переменную? value = uint16_t symm/N;
  2. Не представляю как воспользоваться этим фильтром в моем случае. У Калмана огромная куча переменных в которых надо прописать много значений. Если вы эти значения знаете, то это не сложно. Другое дело, я совсем не знаю сколько, когда и какие бяки могут проскочить в АЦП в момент измерения. С какой частотой и какой величины и т д. Есть фильтры для одной переменной, но как то, не доходит до ума...
  3. Об окне я тоже думал, но окно работает по прогнозу из прошлых значений. А вдруг изменились данные? В таком случае они не пройдут в массив, а тот в свою очередь не даст открыться окну. Как то так.
  4. Продолжаем серию тупых вопросов от "начинающего" с пятилетним стажем Усредняю даные АЦП. Использую скользящее среднее. #define N (6) uint8_t chanal = 0; void adc_usred(uint8_t chanal) { uint16_t value = get_value(chanal); static uint16_t m[N], n; m[n] = value; n = (n + 1) % N; value = 0; for(uint16_t i = 0; i < N; i++) { value = value + m[i]; } value = value/N; } Вроде скользит и работает. Возник вопрос. А если в шум АЦП, проскочит какой то "КОНЬ", то он сильно изменит весь массив. Как избавиться от скачка? Пример: (243 + 245 + 243 + 240 + 241 + 244) / 6 = 242 (это без коня) а вот с помехами: (243 + 260 + 243 + 240 + 358 + 244) / 6 = 264 (Пробежал табун, истоптал пшеницу) Явно видно что от весомых помех не избавились. Как быть?
  5. Да вы правы. Но я его так понимаю, конечно же как понимаю так и пишу. Я думаю, мой код это некая смесь быдло-индо кода по мотивам сельских частушек. Иногда он как то работает, иногда годами... Я читал много вариантов писанины кодов, но не доходит... Может потому что нет конкретного варианта которого следует придерживаться. Подкинете совет??
  6. Таки да. В протеусе два контроллера, у ведущего лог.единица 1, у ведомого 0. unsigned int chislo = 0x0F & (PINC);
  7. Это я экспериментировал . Обьявилась переменная с именем chislo-1, но один не отнимался
  8. Сделал, но почему то я получаю на 1 больше. Передаю 2, получаю 3, и так далее. Решить проблему просто void in_bit_port() { unsigned int chislo-1 = 0x0F&(~PINC); chislo = chislo - 1; } Но подозреваю что не так. Функция на много больше приведенного кусочка.
  9. int input_bit_port() { unsigned int chislo = 0x0f&(~PINC); return chislo; } Что то типа этого только с масками. Нужно обработать только РС0, РС1, РС2, РС3 из них выделить число от 0 до 15
  10. Привет. На прошлой странице, задавался вопросом вывода четырех битного числа в порт. void out_bit_port(unsigned char chislo) { unsigned char tempPORT; chislo &=0x0F; chislo <<=2; asm volatile ("cli"); tempPORT=PORTD&0b11000011; tempPORT|=chislo; PORTD = tempPORT; asm volatile ("sei"); } А как прокрутить эту функцию в обратном направлении?
  11. Да, но не всегда нужен дисплей, и выход в интернет. Иногда самые крутые сименсы используют такие закавыки ))
  12. Так получилось, что в одном интересном устройстве, надо было часто крутить эту штуку (Rotary Encoding Switch 4-bit ). Во первых это было неудобно, во вторых хотелось дистанционно. А еще оно часто ломалось. Attiny2313, пара кнопок и четыре транзистора. Ну и лед индикатор. Да старые знакомые Надо все спаять аккуратным проверенным навесным монтажем и в бой Такую штуку можно ставить для конфигурирования устройств. Используя четыре входа - подать шестнадцать команд. Вещь имеющая право на жизнь.
  13. Компилятор студия покойного Атмела. Круче моего ковра, никто не придумает. Ну той с которой я сюда приперся. Не хотите офигенно прокомментировать свой код? Ну чтобы даже мне дошло. Спасибо
×
×
  • Create New...