- Вопрос скорее про математику. Есть необходимость выводить на LCD
кривую, визуализирующую состояние процесса. Дискретность по
горизонтали - один пиксель. Пока просто соединяю соседние точки
отрезками. Получается почти приемлемо, но вид кривой напоминает
шрифты без сглаживания(antialiasing). Возможно ли аналогичную
технику (используемую для шрифтов) использовать при рисовании
произвольной кривой? Непринципиально, но: сейчас использую Lichee
PI Zero, LCD 800x480, Rainman62(35 знак., 14.11.2020 09:17, MCU, полностью)
- uGFX у тебя в сорцах? - RxTx(15.11.2020 19:10)
- ссылка в пятерке выдачи по "антиалиасинг" - BlackPrapor(15.11.2020 04:57, ссылка)
- Как везде: увеличивайте в мосхе ЦПУ разрешение экрана в 4 раза,
например, а потом, берите среднее, по цветам, для ячейки 2Х2 и
пишите в свой физический, в одну ячейку. - mse homjak(14.11.2020 14:46)
- Пошарься тут - было пару раз про рисование линий/дуг по алгоритму
Брезенхема. Оно? - Toчкa oпopы(14.11.2020 11:38)
- Называется микроконтроллеры проходят итерацию пройденную на ПК в
80е-90е... :))) Вопрос не про математику, а про используемую тобой
uGFX. Пиксельные "ступеньки" это aliasing. Техника сглаживания в
графике называется antialiasing (в пограничных случаях это могут
назвать pixel smoothing или subpixel rendering). RxTx(791 знак., 14.11.2020 11:19, ссылка, ссылка)
- Алгоритмов сглаживания много. Например, алгоритм Ву: - OldHobo(14.11.2020 10:07, , ссылка)
- Как вы можете догадаться, все рисуют линии именно с антиалиасингом.
Но как это делать в гипердорогущей uGFX - сказать затрудняюсь.
Вообще под пингвина есть более одной библиотеки рисования, которые
делают то, что вам надо - lloyd(14.11.2020 09:57)
- А как можно генеровать ШИМ в микропотреблении контроллером
подешевле, частота >= 50 Гц ? Усыплять-будить с такой частотой
- нормально? - VLLV(13.11.2020 11:46, MCU, полностью)
- 1. Смотря что ты называешь "микропотреблением", их может быть
много. У PIC/dsPIC например есть Idle, Sleep, Low-power sleep (еще
в 2х режимах). 2. Засыпание забот не требует. Ожидания в n clock
cycles требует запуск, стабилизация генератора и PLL при выходе из
Sleep или lpSleep. Но 50Hz это достаточно низкая частота, проблем
не будет. У меня dsPIC'и входят/выходят из Idle с частотой ~1kHz и
выше, но это совсем не sleep - RxTx(13.11.2020 13:53)
- Можно ядро, ну и заодно таймер, переключить на низкую частоту. И
даже не спать. Возможно уровень потребления устроит. Если генератор
RC, то может быть и спать. - Vit(13.11.2020 12:47)
- мк идёт от часового кварца 32768, 8-9 бит ШИМ 50гц. CAPcom -хорошо,
нет - просто счётчиками. - General(13.11.2020 11:50)
- Смотри техническое описание микроконтроллера. Часто отдельные блоки
могут не спать и продолжать генерировать ШИМ. (или я тебя понял?). - RxTx(13.11.2020 11:48)
- Аналоговая часть МК. Какой-то статический уход... POV_(474 знак., 10.11.2020 16:58, , MCU, полностью)
- Конденсатор УВХ после преобразования заряжается до Uоп/2
(независимо от входного напряжения). Если на входе АЦП стоит
высокомный делитель, то за время выборки этот конденсатор не
успевает за(раз)рядиться до уровня напряжения на этом делителе.
Отсюда и смещение. - argus98(10.11.2020 20:38)
- Вы пытаетесь добиться стабильных значения о 4 знаках. Флаг Вам в
руки. И читать учебники. - kaf1(10.11.2020 20:00)
- я вот тоже позавидовал таким показаниям встроенного АЦП - Kpoк(10.11.2020 22:01)
- Ёптить, гуру нарисовался. И что именно в учебнике читать, какую
страницу? Документация предусматривает 15ppm/Ц у опорника, и
только. А нестабильность не зависит как я показал от температуры. - POV_(10.11.2020 20:45, )
- А что там в учебниках? Законы природы запрещают вот такие
вольтметры? >>> SciFi(1 знак., 10.11.2020 20:38, картинка)
- Keysight на два порядка точнее >>> Xaoc(8 знак., 10.11.2020 22:07, , ссылка)
- © Попрошу у бабушки на день рождения.... - RxTx(11.11.2020 00:29)
- Можно заметить, что для такой точный прибор требует применения
свинцовых припоев, цитата по ссылке выше: "Этот прибор был выведен
на рынок до вступления в силу директивы RoHS. И хотя он не
соответствует требованиям этой директивы, он продолжает
поставляться на рынок ЕС..." - Nikolay_Po(11.11.2020 00:04)
- Не понял, откуда вывод, что свинец именно требуется. - SciFi(11.11.2020 07:57)
- Если бы не требовался, спокойно перевели бы на безсвинцовые припои.
Не перевели. Как минимум, потому, что это может повлиять на
отработанную годами прецизионную схему. Вряд ли прецизионные
компоненты прохладно отнесутся к повышенной температуре пайки.
Считайте шуткой. - Nikolay_Po(11.11.2020 11:58)
- И термо-ЭДС, к примеру. - Toчкa oпopы(11.11.2020 12:01)
- Со свинцовым источники термо-ЭДС образуются точно так же, только
потенциал другой. В приборе такой точности все подобные источники
скомпенсированы по определению, и простая смена состава припоя не
должна влиять на результат. Правда, возможна ситуация, когда в
герметичном заказном модуле имеется некоторая асимметрия, которую
выравнивает внешняя пайка. Зато смена припоя потребует
пересертификации, изменения документов, новой оценки наработки и
т.п. действий. Так что, teap0t(57 знак., 11.11.2020 12:16)
- Можно придумать разные объяснения, но почему-то на ум приходит
больше административно-бюрократических вариантов, чем технических. - SciFi(11.11.2020 12:04)
- Такие вольтметры нужно калибровать часто. Когда то на прецизионный
измеритель HP доку. Его нужно было калибровать раз в 2 дня. - BlackMorda(10.11.2020 22:57)
- SciFi, сколько такое чудо в $ или ₽ ? - RxTx(10.11.2020 20:53)
- Бывает такое чудо: периодическая наводка, синхронная с частотой
оцифровки. Перезапустил МК, PLL завёлся с другой фазой, наводка
дала другое смещение. - SciFi(10.11.2020 19:42)
- Гипотеза. Перед входом АЦП стоит УВХ. При защелкивании сигнала на
УВХ есть входной импульсный ток от источника сигнала и течет этот
ток только через один резистор делителя. За счет этого импульсного
тока этот резистор потихоньку нагревается и его сопротивление
изменятся. Я понимаю что это ничтожные величины.... - Sl(10.11.2020 18:49)
- Утечка со входа, не? - max(10.11.2020 18:24)
- Там ничо, типа автокалибровки, нет? - mse homjak(10.11.2020 17:28)
- А температура окружающей среды плыть может? Нагреватель какой или
наоборот кондей (вентилятор, охлаждение ноута, сквозняк)? - teap0t(10.11.2020 17:15)
- Какой алгоритм фильтрации указателя уровня бензина применить?
Скользящее среднее как-то не хорошо, просто усреднение тоже
хреново. Бензин при подъёме или на спуске сильно наклоняется и
поплавок всё это время сильно врёт. Подкиньте идею. - Бoмж(02.11.2020 00:12, MCU, полностью)
- Из ТЗ на комбинации приборов ГАЗ/ВАЗ (примерно одинаково, данные
несколько старые- но зато срок давности нда истек)) Илья(476 знак., 09.11.2020 14:18)
- В моей Вектре сложный алгоритм - сочетание поплавка с расходом,
иногда (например, если заглушить после заправки) этот алгоритм
клинит. Но наклон не влияет. Напрашивается идея учитывать поплавок
только в специальной ситуации. - VLLV(04.11.2020 11:11)
- Дяденьки ;), а зачем вы для датчика топлива обсуждаете
характеристику фильтра в частотной области (frequency domain)? - RxTx(03.11.2020 20:46)
- Большое спасибо всем ответившим. - Бoмж(02.11.2020 20:52)
- Это зависит от преследуемой цели. Какова преследуемая цель? - RxTx(02.11.2020 18:36)
- Кстати, на яхте стоит датчик давления. Трубка из бака давит на него
и все. - OlegPowerC(02.11.2020 12:58)
- Тебе нужно на комп записать экспериментальных данных при езде по
горкам. И потом уже подбирать алгоритм. Вначале можно
отфильтровать, чтоб убрать относительно высокочастотные бултыхания
вызванные неровностями дороги и т.п. (постоянная времени или период
-- единицы секунд). Потом, допустим, ровного участка не было, и
всегда горки. Здесь сгодится среднее (но не медиана!), но
посчитанное на относительно большом периоде, вроде единиц минут.
Допустим, горная местность, кавказ. fk0(174 знак., 02.11.2020 12:33)
- Уже массу раз его вспоминали. Зачем? По сути скользящее среднее
(SMA) и экспоненциальное скользащее среднее (EMA) -- это такие
плохонькие оконные функции для КИХ-фильтра: fk0(502 знак., 02.11.2020 12:24, ссылка, картинка)
- Последний (или предпоследний) перл мутного гения , расчет по
потреблению форсунок.Опорный уровень по поплавку устанавливают
только на заправке по росту уровня в баке видимо.Типа машина там
ровно стоит.Смешные казусы.Езжу на ГБО , а мозги думают что бенза
расходуется.Приезжаю на заправку бензы , а она в бак не лезет. PlainUser(176 знак., 02.11.2020 11:13)
- MEMS гироскоп и откалибровать по углам наклона. Дорого-бохато! - mse homjak(02.11.2020 10:48)
- Поставь второй поплавок, чтобы в противофазе работал и усредняй. - Звepoящep(02.11.2020 09:59)
- Стесняюсь спросить - ЗАЧЕМ? Зачем измерять уровень топлива в баке
точно? В чем сакральный смысл этого действа, если будущее
потребление можно спрогнозировать очень примерно? При том, что
мгновенное потребление может быть измерено весьма точно. Форсунки
дозируют топливо строго по топливной карте. К этому добавим
изрядный объем топлива в рампе и необходимость обязательного
остатка топлива в баке для того, чтобы не подпалить погружной
насос. Бонусом к проблеме идет сложная форма my504(313 знак., 02.11.2020 09:21 - 09:27, youtube)
- а там разве не датчик давления снизу? - General(02.11.2020 09:22)
- При правильном расположении поплавка (по центру бака) зависимость
уровня от наклона сводится к минимуму. Ну и усреднить тупо с
постоянной 20-30сек без всяких наворотов. il-2(105 знак., 02.11.2020 09:07)
- Поставить инклинометр и блокировать уровень по нему. - General(02.11.2020 08:30)
- Экспоненциальный фильтр? - Visitor(02.11.2020 08:21)
- Достаточно обычного усреднения на 2 минуты. И исключать из
алгоритма торможение/ускорение по датчику скорости в течении 20
секунд. И акселерометр бы не помешал. - Nikolaev_Aleksey(02.11.2020 08:08)
- судя по тому как он работает в логане, там что-то типа усреднения
за несколько минут + периодически скидывает отфильтрованное
значение в еепром, его и выводит на индикатор. возможно еще
прикручен фильтр на максимальную скорость изменения среднего
уровня. типа отслеживает момент заправки и какое-то уж очень долгое
время, часа час-два-три после заправки полного бака, уровень не
меняет вообще. хз зачем это сделано. - LordN(02.11.2020 08:07)
- Меня, например, не напрягает то, что стрелка немного отклоняется на
склонах. Это как бы естественно. - SciFi(02.11.2020 08:05)
- Это какой же подъем/спуск должен быть чтобы бензина в баке заметно
изменилось? Просто постоянная времени должна быть большой.
Включаешь зажигание оно быстренько измеряет скока топлива, а потом
подрубается фильтр. Понятно, что есть погрешность начального
измерения в зависимости от наклона парковки, но через 10 минут она
уберется. - Codavr(02.11.2020 03:31)
- Добавить акселерометр-инклинометр и скормить все это дядюшке
Калману - MBedder(02.11.2020 00:25)
- Спрошу теперь здесь. Есть ли в природе клипса для bga-шариков,
чтобы не покупать дорогущий сокет и не разводить тестовую плату? andrews(55 знак., 06.10.2020 15:03, MCU, полностью)
- У меня 10-битная архитектура. Можно ли в Java завести тип 10-битное
слово, или только 16-битное с маской? Если нельзя, то в каких ЯВУ
можно? - andrews(28.10.2020 16:44, MCU, полностью)
- List of arbitrary precision arithmetic software - RxTx(30.10.2020 13:35, ссылка)
- В Java примитивные типы - только 8, 16, 32, 64 бит. "Не
примитивные", т.е. ссылочные могут быть какими угодно, только
работать с ними вы скорее всего не захотите. - Argon(29.10.2020 17:40)
- Ничего себе! - Evgeny_CD(29.10.2020 01:50, ссылка)
- Это что за архитектура такая? - MBedder(28.10.2020 17:02)
- L60 - andrews(28.10.2020 20:25)
- Версия: 572ПА1 - Kpoк(28.10.2020 17:38)
- Это ж просто ЦАП с параллельным портом. Обычных масок достаточно, у
32-разрядных МК gpio обычно имеют 16-32 пина, можно все 10 завести
на один порт. - evgeniy1294(28.10.2020 17:46)
- Это ж просто была попытка пошутить. - Kpoк(28.10.2020 18:07)
- Я уже на это 50 часов времени убил и готов потратить еще 300. - andrews(29.10.2020 15:19)
- L60 - это "процессор конца 60-х" когда еще не было 8008!в 60-е годы
в Ленинграде в КБ-2 Староса была создана новая технология, которые
сами создатели назвали "куб памяти". Они придумали, как делать
ферритовую память для компьютеров не на катушках с ферритовыми
сердечниками, а просто просверливая отверстия в пластине феррита! И
получилась на небольшой по размере пластине значительная по тем
временам емкость энергонезависимой и относительно быстродействующей
памяти. На andrews(1242 знак., 28.10.2020 21:07)
- Или
политзаключённые погибающие к кровавых лагерях
гулага выдающиеся советские учёные в СССР как всегда украли позаимоствовали технологию у... Ford Motor Company! Верней её
подразделения Aeronutronic Division работающего над задачами мин. обороны США на кровавую американскую военщину. В марте 1963 они уже печатали
рекламные брошюры, начались разработки понятно лет на 5 раньше. fk0(1929 знак., 29.10.2020 15:54, ссылка, картинка)
- Когда идея и нужна и витает в воздухе, то ... "Кто первый встал,
того и патент". А работать - могли и параллельно. - Toчкa oпopы(29.10.2020 17:26, ссылка)
- "Я, американский инженер, – говорил он, – предлагаю программу
работ, которая позволит советскому народу обогнать Америку в самой
важной гонке ХХ века, превосходящей по своему значению и ядерную, и
космическую гонку – первыми создать самые быстродействующие и самые
массовые в мире вычислительные машины для обороны страны, для
управления производством и просто для рядовых людей" Старос. Если
что, он в "домашних тапках" из штатов отчалил в 1950 году. Попал
под колпак andrews(182 знак., 29.10.2020 16:11)
- Aug. 31, 1959 - Publication II, "Biax High Speed Magnetic Computer
Element,' - 16-21 ноября 1959 г. - "Некоторые схемы на ферритовых
сердечниках с диаметральными отверстиями." Так и диссертации писали
и пишут, если кому это нужно. Даже книги так получатся. - Boвa(29.10.2020 16:06)
- Круто! Но меня в этом проекте больше заинтересовала проблема
механической обработки ферритовых пластин. - Kpoк(29.10.2020 00:46)
- Бляаа! В деревню, в глушь, в Саратов!(с) :)) - MBedder(28.10.2020 22:08)
- Вы планируете реализовать программную эмуляцию ядра? Для столь
экзотической архитектуры придется пилить свой бэкенд для
компилятора llvm. А как будет произведена эмуляция уже не так
важно, хоть программно, хоть аппаратно на FPGA. - evgeniy1294(28.10.2020 21:31)
- Это, конечно, интересно но при чём тут Java? - SciFi(28.10.2020 21:12)
- Заработался значит) - evgeniy1294(28.10.2020 18:14)
- Подскажите как сейчас правильно организовать в микроконтроллере
программные таймеры? Peter_M(164 знак., 23.10.2020 12:50, MCU, полностью)fk0
- Подскажу еще один способ замеров интервалов времени. Без inc/dec
счетчиков. Для примера, ST HAL предоставляет время в ms посредством
функции HAL_GetTick(); Единожды запоминаем текущее время: static
uint32_t time_start = HAL_GetTick(); и далее в том месте где надо
проверить не вышло ли время, просто находим разницу между начальным
и текущим временем непосредственно в самом условии: if
(HAL_GetTick() RxTx(130 знак., 25.10.2020 16:10 - 18:41)
- Вот так делаю. Удобно Tpoeшник(796 знак., 25.10.2020 08:45 - 10:37)
- Раз уж дело дошло до типов, задам вопрос здесь(в этой ветке): а в
чем смысл писать std::uint32_t вместо просто uint32_t? - Constantin24(26.10.2020 08:05)
- INT16U и INT08U это наверно специально для выноса моска? - Vit(25.10.2020 09:00)
- Еще бы U8 и U16 можно было бы понять - VLLV(25.10.2020 10:41)
- Это для того чтоб не выписываться и чётче видеть важное. Где то
подсмотрел. - Tpoeшник(25.10.2020 10:27)
- Чем stdint.h не устраивает? - VLLV(25.10.2020 10:42)
- Еще компактнее будет сделать mbedder.h с понятиями u8, u16, u32,
u64 и s8, s16, s32 и s64. Для еще большей сестры таланта можно
вместо битовой длины залудить байтовую - u1, u2, u4, u8 и s1, s2,
s4, s8 :)) - MBedder(25.10.2020 10:48)
- Вот я тоже себе сделал u1, u2, u4, u8. Непонятно, кто и зачем
придумал uint32_t ? Ведь всё равно нету uint29_t, uint31_t и т.д.
Зачем тогда в 8 раз умножать? Ale3000(134 знак., 27.10.2020 04:17)
- У меня global.h в котором: Tpoeшник(742 знак., 26.10.2020 11:38)
- Вот в фортране как было удобно-то. Если переменная начинается на
"йоклмн" -- то целая, иначе вещественная. - fk0(25.10.2020 13:16)
- После того, как увидел, что компилятор ARM по разному компилирует
самопал и стдинт, больше самопал не использую. Неважно, что оба
варианта работают. - VLLV(25.10.2020 13:03)
- stdint - это ведь тоже самопал, набор typedef и #define. Кто мешает
сделать свое точно так же, а не через алиасы? - MBedder(25.10.2020 13:15 - 13:19)
- Что такое int_fast32_t я знаю будучи пьяным и разбуженным в 4 утра.
Что такое u8 -- не знаю, не уверен, ибо есть нюансы. Для
int_fast32_t есть INT_FAST32_MAX и PRIdFAST32 например, а для u8
что? Для именно u8 или i8 вообще интересно, это char, signed char
или unsigned char (кто не знает -- это ТРИ РАЗНЫХ типа). Можно для
всех библиотечных типов придумать свои алиасы, но читать такую
программу -- невозможно. Потом #define вместо typedef использовать
нельзя, т.к. у него fk0(809 знак., 25.10.2020 14:58)
- Да никто не мешает, но лучше иметь возвожность свалить вину на
компиляторописателей, а не рвать волосы на ж. Опять таки,
кросс-платформенность уже реализована, меньше думать. - VLLV(25.10.2020 14:04)
- stdint - это Стандарт, заголовок, обязанный быть у каждого
компилятора - lloyd(25.10.2020 13:18)
- Заинтриговал. А какой вариант красивше скомпилировался-то? Может,
самопал надо было брать? - SciFi(25.10.2020 13:12)
- есть системный таймер uint32_t sysTimer_ms который инкрементируется
каждую 1мс. При необходимости можно любой добавить - 100мс, 1с,
1час. Потом для таймера завожу переменную uint32_t timer_n. Ну и
дальше просто: AVF(451 знак., 25.10.2020 08:17)
- "Программный таймер" - это вырожденный случай оси, предоставляющей
сервис времени. =AK=(276 знак., 24.10.2020 14:27, ссылка)
- Эх-хе-хе... Помницца, был здесь знатный срач по поводу 100500
канального ШИМ на АВР. - mse homjak(24.10.2020 00:17)
- Ответов много и все верный.. ну как же моих трех копеек ))... POV_(2655 знак., 23.10.2020 19:43, )
- Библиотека тут чрезмерна, заводишь несколько декрементных счетчиков
и всё. Счетчик это хорошо накатанная (шаблон, паттерн) конструкция
вида RxTx(362 знак., 23.10.2020 19:37)
- только так и делаю. Оно ж (через 1 мсек) всё равно щелкает. А какая
там библиотека? Таймеры щелкают в прерывании systick/ - Лaгyнoв(23.10.2020 18:48)
- Как вариант - Evgeny_CD(23.10.2020 18:13, ссылка)
- Генерим прерывания от одного аппаратного таймера каждую
миллисекунду (наименьший общий квант). Делаем N софт-таймеров и
инициализируем их требуемыми значениями периодов в мс - 3, 25, 100,
60000. В 1-мс прерывании декрементируем каждый софт-таймер, и при
достижении нуля переинициализируем его прежним значением и
генерируем event, interrupt или что угодно. Это все - не благодари
:)) - MBedder(23.10.2020 16:29)
- напишу общий комментарий к выложенным примерам. Mahagam(389 знак., 23.10.2020 16:25)
- Мое решение выглядит следующим образом: evgeniy1294(3490 знак., 23.10.2020 15:57)
- Нужна очередь с приоритетом (priority queue), реализуется на
двоичной куче... Если таймеров буквально меньше десятка, то просто
односвязный список. В списке хранится абсолютное время
(относительно некой точки отсчёта, не важно какой), после которого
таймер должен сработать. Логика работы такая: fk0(1965 знак., 23.10.2020 15:43 - 15:51, ссылка)
- Воистину, у погромистов мозги набекрень... ))) Из любой
элементарщины сделают "винду"... - my504(23.10.2020 16:42)
- Как-то сложно для микроконтроллеров. Легче вдуплить все таймеры в
массив, в прерывании отнять 1 от значения каждого софт-таймера и
если ноль вызвать калбек функцию (при её наличии) Boвa(141 знак., 23.10.2020 15:48)
- Да ничего сложного, у меня на PIC18 работало. Попозже код напишу.
Вот куча (очередь) -- сложно и не знаю как тут проще (если таймеров
100 штук). - fk0(23.10.2020 15:52)
- Да в принципе можно и так как вы пишите, но вместо односвязного
списка - очередь упорядоченная по оставшемуся времени. Сортировка
по времени происходит в момент добавления события. В момент
обработки события событие выбрасывается, и головой очереди
становится следующее. НО если нужно сформировать какую-то циклическую последовательной
действий очень все это не красиво будет. - Boвa(23.10.2020 16:02)
- Проблема линейной очереди -- гигантское время вставки если в
очереди 6144 таймеров, например. Кроме того API прикладного уровня
может иметь, например, функцию остановки/отмены запущенного
таймера. Т.е. нужны операции: 1) вставки в очередь, 2) извлечение
из головы очереди, 3) удаление произвольного элемента. Бинарная
куча выглядит диковато и перетряхивает вообще всю память, но у ней
худшее время понятно. Есть вариант со скип-листами, но там удалить
физически нельзя, только fk0(427 знак., 23.10.2020 20:49, ссылка)
- Какая еще библиотека? Вы не в состоянии написать инкремент
переменной со сравнением и сбросом? my504(493 знак., 23.10.2020 13:51)
- Я могу ошибаться в рассуждениях. Peter_M(691 знак., 23.10.2020 15:22)
- Системы с "тиком" -- не нужны, если это не time triggered
архитектура. См. мой ответ выше. Он даёт таймеры с минимальной
дискретностью (а не с тиками по 50мкс и сверхчастыми прерываниями).
Правильно, незачем вообще что-то инкрементировать. Поэтому вся
арифметика над абсолютным значением времени в будущем, а не над
временными интервалами (т.е. "проснуться когда время >=
13:00", а не "спать 3 часа"). Равно как и незачем за раз
обрабатывать более одного таймера, если их fk0(23 знак., 23.10.2020 15:49)
- Какая точность нужна для выдержек времени? Обычно программные
таймеры не требуют шести знаков точности. Исходя из потребной
точности/разрешения следует выбрать максимальный интервал
аппаратных прерываний. Если не инкрементировать частные таймеры, то
придется сохранять стартовые значения софтовых таймеров и выполнять
математику сравнения с единым таймером. Оно зачем? Никакой экономии
не будет. Сплошная путаница. А так, назначили пересчет, сбросили
тело таймера в коде (тело my504(109 знак., 23.10.2020 15:45)
- у меня подобное реализовано на регистрах сравнения таймера, также
можно устанавливать произвольные значения , при установке считываем
текущее значение счетчика , добавляем новое время, грузим в
свободный регистр сравнения, в таблицу кладем указатель на функцию
которую нужно ввызвать по таймауту! все работает аппаратное и не
жрет ресурсов! На 3 аппаратных таймера stm32 выходит 12 независимых
счетчиков - Aleksey_75(23.10.2020 15:36)
- а что за контроллер ? мож использовать регистры сравнения таймера? - Aleksey_75(23.10.2020 13:26)
- Обычно не нужно строго выдерживать период, достаточно "в следующий
раз через N мс или чуть позже". В этом случае удобно вот так: SciFi(424 знак., 23.10.2020 13:15)
- как переводится передаточная функция в формулу для
микроконтроллера? к примеру W(s) = 1 / ( 1 + k*s) - Constantin24(21.10.2020 11:28, MCU, полностью)
- Подскажите, на чем лучше реализовать? Подключаемый по USB
программатор с устанавливаемым с шагом 0.5В программирующим
импульсом 23В+/-2В Если Piccolo, то это ведь "из пушки по
воробьям". Остальные параллельные выходы дб толерантны 5в логике.
Например для программирования 573РФ2, КС573РФ2, 2716 21V и пр. - andrews(23.10.2020 23:49, MCU, полностью)
- Камрады, подскажите, как сделать цепочную обработку значений? Dingo(322 знак., 12.10.2020 07:49, MCU, полностью)
- Как что с pudn.com скачать? - fk0(18.01.2011 15:23, MCU, полностью)
- Скачайте pls файлик de8681_w.zip - в инете в открытом доступе он уже не живет, по ссылке -> - Make_Pic(29.07.2019 11:04, ссылка)
- Пожалуйста скачайте SDK sergeyb2009(50 знак., 13.05.2019 03:04)
- Пожалуйста скачайте SDK: psb(48 знак., 11.01.2019 20:37)
- Пожалуйста скачайте файл mrpcjhsdk_v1.0u19.3_20100323 - GOOSE(04.11.2018 03:16)
- Помогите, пожалуйста, скачать файл с pudn.com cmn74(109 знак., 27.11.2017 12:40)
- У кого доступ к pudn - Скачайте pls по ссылке файл: Make_Pic(77 знак., 09.04.2013 00:51)
- хороший ресурс. я регистрировался и чесно залил 5 своих исходнегов, которые не жалко было :). - RED_DRAGON(20.01.2011 11:55)
- Частично то что лежит на Pudn можно взять здесь: 74ALS(87 знак., 18.01.2011 15:33)
- зарегиться и чтонить закачать для начала. - Snaky(18.01.2011 15:25)
- Хваленый MSP430F67791A с сигма-дельта 24 бита дергается что дурной
и имеет большое смещение, погрешность температуры при использовании
PT100 получилась три-четыре градуса. - VLLV(08.09.2020 01:12, MCU, полностью)
- Продолжаю откапывать старье. Свой RX проект, эх ничерта не
компилится, Ренесасовские драйвера огорчили - переписываю. Уже Aito
negotiation готов - OlegPowerC(13.09.2020 11:46, MCU, полностью)
- интересно, кто-нить заради интереса, пробовал свои старые проекты
сделать заново на новой элементной, с новым опытом и т.д. и как
оно? - LordN(13.09.2020 22:11)
- Ваша библиотека USB_AT90.zip не работает на AT90USB162 :) - Kceния(13.09.2020 18:36, ссылка)
- И вы лучше заходите на мой публичный Git OlegPowerC(46 знак., 14.09.2020 08:05, ссылка, ссылка)
- Запросто :-) не пробовал :-) OlegPowerC(38 знак., 14.09.2020 07:57)
- Я ее с AT90USB1287 на AT90USB647 сама переделала, но с AT90USB162
ничего не выходит. - Kceния(14.09.2020 12:19)
- А актуально? Могу сделать если реально надо. - OlegPowerC(14.09.2020 19:46)
- AT90USB162 - самый дешевый из известных мне вариантов 5-вольтового
МК, поддерживающего USB-CDC девайс, тогда быстрая арифметика от
него не требуется, а нужно лишь, чтобы сообщения в виртуальный
COM-порт исправно посылал. Если знаете, то можете предложить ему
альтернативу, но только обязательно тоже 5-вольтовую.
USB/COM-конверторы типа FTDI или CH341 плохи тем, что выглядят со
стороны компьютера, как Ардуино :), и требуют согласования
baudrate. Kceния(118 знак., 15.09.2020 01:19)
- А так там нет OTG - Наде поправить - OlegPowerC(14.09.2020 07:58)
- А что, никто не отмечает День Погроммистов?! Мы с супругой - уже.
Догоняйте.. С праздником!! - argus98(12.09.2020 14:49, MCU, полностью)
- Чего-то не соображаю сегодня. Хочу к целочисленным данным применить
экспоненциальный фильтр вида Yn=a*X+(1-a)*Yn-1 Естественно, при умножении будет неточное значение. Как посчитать
ошибку к накоплению? Dingo(224 знак., 27.08.2020 13:32, MCU, полностью)
- Дык, эта. Мониторить значения сигнала до фильтра, и если они больше
выхода фильтра, то и учесть. Не? - Бapбoc(29.08.2020 22:46)
- Нет там никакой ошибки накопления IBAH(121 знак., 28.08.2020 15:25)
- Это не ошибка. Это порог. Причем он при определенной ситуации может
стать ловушкой, когда слишком малое входное значение не сможет
уменьшить текущее значение фильтра. Решается фикспойнтом для
значения фильтра. То есть нужно добавить справа к значению фильтра
нужное число дробных разрядов и каждое новое входное значение левым
сдвигом делать фикспойнтом. При выводе значения фильтра наружу
восстанавливать целочисленную разрядность правым сдвигом. - my504(27.08.2020 23:12)
- Если a больше, чем 0.5 (а именно так и должно быть), то ошибка не только
не накапливается, но и рассасывается со временем. Kceния(406 знак., 27.08.2020 22:48)
- Если принять, что а = 2^-n и отнормировать к формату результата, то
и умножение сдвигами делается и ошибки не будет. к примеру, выход
16 бит, вход 10: а = 2^-6. Даже на ПИК проце отлично работало. - Visitor(27.08.2020 18:37)
- Ну вот пример для беззнаковых интов: Visitor(35 знак., 28.08.2020 14:23)
- Вот это "Даже на ПИК" звучит оскорбительно. Тем более, что честные
пиководы в этой формуле обходятся одним умножением. - Kpoк(27.08.2020 22:16)
- Ах целочисленными. Так что мешает a представить как N/(2^k). Например 0.1 = 410/4096 = 410
>> 12. Тогда получается y[n] = (410*x + 3686*y[n-1])
>> 12. - fk0(27.08.2020 20:30)
- "Изобретение" фикспойнта? ))) - my504(28.08.2020 06:21)
- Слишком громко сказано. Никогда "фикспоинтом" это не называл и
никакого отношения к одноимённым библиотекам оно не имеет. Понятно,
что в целых числах нельзя работать с числами от нуля до единицы, но
что мешает всё выражение домножить на некоторую величину -- идея в
этом. Не обязательно 24Q8 или что-то ещё, величина может быть
любая, на которую удобно делить и которая с одной стороны ещё не
наткнётся на переполнение сверху, и с другой позволит приемлимую
погрешность вычислений fk0(253 знак., 28.08.2020 11:24)
- Раз уж ещё раз упомянули - может кините ссылок или материалов на
толковый въезд по теме? А то зачастую "вот библиотека для 24Q8,
пользуйтесь. А я, может хочу 12Q4 и понимать, как оно работает до
битика. Как-то попадалось у TI, но тогда не особо надо было, а
сейчас найти не могу. Пустыня долго хранит, а теперь General ещё и
теги прикрутил! - Dingo(28.08.2020 09:32)
- +100500 - LordN(27.08.2020 19:19)
- Оно же сходится к X при n -> бесконечности. При больших a ~= 1
-- быстро. - fk0(27.08.2020 13:44)