Jump to content

    

AI7

Участник*
  • Content Count

    10
  • Joined

  • Last visited

Community Reputation

0 Обычный

Контакты

  • Сайт
    http://
  • ICQ
    0
  1. В моём варианте рассчитываются всего два коэффициента, которые запоминаются в EEPROM. А для расчета нелинейной функции подключается стандартная программа, обеспечивающая оптимальным образом гарантированную точность во всём диапазоне аргументов. Получается вроде как просто и легко. В вашем варианте потребуется расчёт массы коэффициентов, для 17 отрезков при линейной аппроксимации получается около 50 штук. Надо решать проблемы, как разбивать на отрезки нелинейную функцию, как обеспечить точность при аппроксимации.
  2. Как я понял, вы для каждой новой термопары или при перекалибровке будете рассчитывать новый массив – это ужасно. Я бы пошёл по другому пути. С терморезисторами не работал, насколько понял из интернета, там экспоненциальная зависимость от температуры. У экспоненты всего два параметра (множитель и показатель экспоненты), вот их можно определить по двум точкам температуры (у вас 25 и 100 градусов). Ну а для расчёта экспоненты или логарифма использовать стандартную и единую программу. В нормальном компиляторе должна быть готовая программа для нелинейных функций, думаю, в хорошем компиляторе должны быть готовые массивы для этой программы для расчёта стандартных функций с разными точностями. Скажем, у логарифма (аргумент – 2 байта, точность – 0,5 %, диапазон изменения аргумента от 1 до 64) понадобилось 17 точек разбиения.
  3. Разве не получается коррекцию для разных терморезисторов проводить с помощью одного (или двух) параметров, например, умножающий коэффициент? В этом случае можно использовать одну стандартную подпрограмму расчёта деления с разбиением на количество кусков, обеспечивающих требуемую точность.
  4. Цитата(arisov @ Oct 13 2017, 23:17) Как не попасться в следующий раз на такие же "нежные" AtTiny13? МК – «нежное» создание, а его коммутационными выбросами долбите. Похоже, лучше нанять грамотного электронщика, который правильно пристыкует МК к шаговому двигателю, тогда проблем с «нежностью» AtTiny не будет.
  5. XMEGA еще жива?

    Цитата(uriy @ Mar 7 2017, 18:29) А кому сейчас нужна работа от 5В? Наверно, лучше защита от помех при передаче данных по кабелю. Ведь порог переключения выше. А лучшая помехозащищённость – существенный фактор.
  6. Цитата(zhevak @ May 30 2017, 09:34) И тем не менее, я болше предпочетаю юзать STM32? а не AVR-ки. Могу сказать пару слов, чем это объясняется. Дело в том, что чтобы прикрутить к AVR-ке отладчик по JTAG, нужно забрать у неё под это дело весьма дефицитные ножки. Это не проблема для АВР, только надо использовать другой отладчик. Использую отладчик, где через пару ножек (тактовый сигнал и сигнал данных) программно выбрасывается байт в отладчик, вполне достаточно для отладки. Поскольку запись байта в отладчик производится по тактовому сигналу, под сигнал данных можно задействовать занятую ножку, лишь бы она была на выход. Так что нужна одна свободная ножка. У меня в отладчике есть некоторая защита, поэтому под тактовый сигнал также можно использовать занятую ножку, но с некоторыми ограничениями.
  7. Цитата(Палыч @ Mar 16 2016, 16:30) 4) устройство-мастер выждав после передачи время, необходимое для гарантированной реакции подчиненного устройства на первый байт, производит считывание байта ответа. «Выжидать время, необходимое для гарантированной реакции подчиненного устройства» - наверно, нехорошо. Откуда вы знаете это гарантируемое время? Да и в процессе разработки программа в подчиненном МК может поменяться, поменяется и гарантируемое время. Каждый раз это отслеживать неудобно. На мой взгляд, проще и удобней сделать так: мастер регулярно посылает стартовый байт и ждет, когда придет байт ответа. Раз пришел байт ответа, значит, периферийный МК закончил свои дела и переключился на обмен с мастером, можно начинать сеанс связи.
  8. Цитата(Deka @ Dec 4 2012, 06:32) Ассемблер! Как много в этом слове... В общем сделал для себя небольшой комплект макросов для работы с сигналами, событиями и флагами. Кому всё ещё интересно матёрое программирование на асме - прошу заценить. Жду Ваши комментарии и пожелания. Deka, для AVR есть графический ассемблер Algorithm Builder (АБ), раз в 5 удобней, чем классический ассемблер. Поэтому не имеет смысла писать на классическом ассемблере, тем более, что сейчас АБ бесплатный. Похоже, некоторые Ваши предложения там сделаны на уровне компилятора. При написании на АБ быстро пришел к тому, что практически не использую имен регистров, бит. Скажем, у меня команда для включения вентилятора будет выглядеть так: vkl_FAN, а для выключения, естественно, vykl_FAN. Если вентилятор подключен к PORTB.0, эти команды представляют собой макросы: 1 -> PORTB.0 и 0 -> PORTB.0. В АБ масса удобств, например, подпрограммы с параметрами. При их использовании, например, умножение двух двухбайтных переменных А и В можно записать одной строчкой: Umnojenie(A, Думаю, при наличии хорошего отладчика писать и отлаживать программы на АБ проще и быстрее, чем на СИ.