Обсуждаем электронику на колесах. Нужен увлажнитель воздуха для Камаза? Вам сюда.
Ответить

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Сб ноя 21, 2020 09:41:24

Так возможность поднятия напряжения еще от маховика зависит. На Ветре пять импульсов катушка выдает. Центральный (3) самый мощный, средние (2, 4) слабее, крайнии (1, 5) совсем слабые. Конденсатор заряжается 1 и 3 импульсами. Тиристор аппозитивного канала открывается 2 импульсом. 4 импульс открывает тиристор еще раз с уже раздраженной емкостью. Когда меняешь входные диоды на мост, то заряд емкость происходит на всех импульсах ( емкость током заряжается). Там такие интересные осциллограммы получаются - просто цирк.

Вот поэтому прежде, чем на "новый" ДВС нахлобучить зажигание, я пытаюсь собрать на него максимум информации. Хорошо, когда он в гараже стоит. Я поэтому у asel спрашивал осциллограммы.

Вот нашел:https://forum.motolodka.ru/read.php?f=1&t=1809790&i=1809790

Но безусловно книжкам больше доверия, чем публикациями блогеров.
Вложения
Ветерок.pdf
Замена пары диодов на мост
(133.05 KiB) Скачиваний: 260
Последний раз редактировалось С.Н. Сб ноя 21, 2020 10:00:38, всего редактировалось 1 раз.

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Сб ноя 21, 2020 09:57:49

Вот в этом суть.. Некоторые нюансы мы не учитываем и пытаемся применить ко всему. Вот у вас конструкция собрана под мост, у меня по другому.. Просто надо пытаться понять, почему именно так.. Радиоинженер я по специальности.. :)))

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Сб ноя 21, 2020 10:16:03

Радиоинженер я по специальности.. :)))

Можно сказать коллега!
У меня конструкция ни как с мостом не связана. Тут вообще нет высоковольтной части. Она вся у fcftdbx на плате https://radiokot.ru/forum/viewtopic.php ... 0#p3927010.

На отметить, что ни к месту немного отвлекся на свой Ветерок с мостом....- там то все есть.

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Сб ноя 21, 2020 13:21:11

С.Н., Добавил свой пост (10:13:59) на прошлой странице, не посмотрел опять, что открылся на 3 странице - почитайте.. Картинки показательны.. Тем не менее, основы нужно знать в тонкостях... Такой простотой и стабилизировать выход и запирать тиристор.. Расположение магнитов, как сами понимаете, тоже имеет значение..На Ардуино возможно перейду попозже, но прошивка другая будет...
============
Посмотрел ссылку, что вы дали... Ну, как бы познавательно... Из главного вынес только то, что сигнал с датчика у нас совершенно по-разному формируется... У вас от катушки.. У нас по другому.. Многие считают, а, типа, индукционный датчик, катушка, и в Африке катушка.. Так, да не совсем так. Дело в том, что у нас катушка намотана на СИЛЬНО намагниченный сердечник.. Сила притяжения, к примеру, отвёртки, приблизительно равна, что к магнитам колокола, что к датчику. Но поле падает обратно пропорционально квадрату расстояния. Ну и прикиньте, 2мм или 2см, да ещё и экран колокола.
При проходе железного выступа около датчика происходит снижение напряжённости магнитного поля в датчике, сопровождаемое самоиндукцией. Потому и помех поменьше. Дальше вы поняли..

Некоторые товарищи сильно близко пододвигают датчик к колоколу, не учитывая, что подшипники имеют люфт. Кроме того, при 6000 об/мин (это не предел, предел для Дельт - 8500) на окружности колокола ускорение 2400 g. Т. е. каждый грамм разбаланса даст почти 2,5 кг. На максималке ещё мрачней. Придвигают до того, что выступ уже шоркает по магниту, а ему много не надо - очень быстро размагничивается.. Последствия сами понимаете..

Пост длинный, если скажете, удалю...

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Вс ноя 22, 2020 19:20:29

.... у нас катушка намотана на СИЛЬНО намагниченный сердечник.....

Это я уже понял по Вашему объяснению поведения катушки при коротко замкнутом режиме. У нас похоже массивное магнитомягкое железо. Катушка в силу малого гистерезиса магнитопровода остается в линейном режиме (старые ДВС). Слегда портит нам нервы шумом магнитопровода.

На новых ДВС и иномарках наверное как и у Вас... сердечник маленький и похоже с большим магнитным гистерезисом. На вид он такой же, как и Ваш.

Есть еще один очень важный фактор! У нас сигнал (с зарядной катушки) носит ярко выраженный импульсный характер в силу того, магниты сконцентрированы в одном месте маховика. А может из-за двух цилиндров. У Вас сигнал близкий к гармоническому из-за равномерного распределения полюсов на маховике. Это очень помогает в таких фокусах, как Вы описывали. Кроме того, понятно почему нельзя тот диод убирать - потому,что во время искрообразования идет отрицательная волна на катушке высокоствольной и мост ставить нельзя иначе будет коллапс при подачи тока с заражающей обмотки на включенный тиристор.

Честно говоря, теория магнитных цепей не моя сильная сторона. Могу только из общих понятий судить, и могу ошибаться..

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Вс ноя 22, 2020 20:17:12

...могу ошибаться..
Тут "всё в точку" :)) Только речь шла о железе катушки ДАТЧИКА (у вас 1 абзац)..

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Пн ноя 23, 2020 10:56:00

Только речь шла о железе катушки ДАТЧИКА (у вас 1 абзац)..

На моем двухцилиндровом эти катушки на одном сердечнике и на одной катушке - как на трансформаторе. Заряд емкости первого цилиндра и запуск второго и наоборот.
На одноцилиндровом вообще одна обмотка на сердечнике, похожем на Ваш.

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Чт дек 03, 2020 14:28:29

Сегодня закончил описание крайней версии ФУОЗ.

Область применения - Одноцилиндровые двигатели, двух и цилиндровые двигатели с одноканальным зажиганием (один цифровой датчик - Холла или оптический). К последним можно отнести и лодочные двигатели типа Вихрь...

Добавлена полная поддержка коммутатора 76.3734 - как на прошивке Саруман, но без дополнительных функций по разогреву свечей и ограничению оборотов. Других "плюшек" хватает, чего там нет.

Ссылка на первой странице.

Проект OneCycle 2 пока не публикуется.

04.12 Немного откорректировал описание OneCycle.
Вложения
Описание.pdf
(1.93 MiB) Скачиваний: 270
Описание OneCycle 2.pdf
(185.33 KiB) Скачиваний: 236

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Сб дек 12, 2020 16:39:59

Несколько доработанная монтажка для этого проекта.
Вложения
фуоз (ардуино).lay6
(61.68 KiB) Скачиваний: 279

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Вс дек 27, 2020 18:02:31

Добрый день.
Сегодня наконец обзавелся внутрисхемным программатором. В результате удалось легко отключить Bootloader в микроконтроллере на платформе Ардуино c уже зашитой программой.
Как и ожидалось, это позволило уменьшить время запуска системы после включения питания с 2 секунд до 250 мс. В этой связи перспектива эксплуатации системы без аккумулятора стала реальной.

Вот так это выглядит: https://youtu.be/DXinnDjxEr4

Очередную благодарность хочу выразить многоуважаемому fcftdbx.

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Ср янв 06, 2021 18:20:41

Ещё один "зверь заурчал"
https://youtu.be/TpVh4_wbeXY
140 л.с. три цилиндра. Вместо коммутатора igbt транзисторы. Два индукционных датчика.

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Сб янв 09, 2021 16:07:21

Сейчас зима и холодно. Предлагаю дополнительную утилиту - программа эмуляции сигнала датчика. Свободная Ардуинка заменит Вам двигатель из холодного гаража для сборки платы и первых отладочных запусков на столе в теплом помещении.

Программа простая, но не без хитрости. Можно и лучше сделать....
Если есть общие навыки в программировании, то Вы без труда переделаете программу на другую "полярность" сигнала. Если будут добавлены команды в основной цикл, то реальное значение периода сигнала будет отличаться от задаваемого значения.
Вложения
Описание.pdf
(274.05 KiB) Скачиваний: 196
Impulser.zip
(527.25 KiB) Скачиваний: 236

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Чт янв 14, 2021 17:11:33

2 недели разбирался с программным кодом программы CН. Высер писал на работе…. Всё нижесказанное- моё личное мнение. Есть свои плюсы и минусы. Начнём по порядку..
1. Применена более высокоскоростная платформа (Ардуино). Плюс сомнительный, поскольку эту же частоту (речь только о платформе пока) можно получить и на АТ Меге8.
2. Программной памяти на Ардуино 32, а не 8 Кб, как на Меге. Нужно менее 3кб… Ардуино дороже.
3. Качество пайки Ардуино не сравнимо с качеством изготовления корпуса микросхемы, это к вопросу о вибрации..
4. Габариты Ардуино больше корпуса Меги. Обвязку из кварца и кондёров для Меги не считаю минусом.
5. Плюс –имеется в определённых конфигурациях программатор на борту, но он мне по барабану – в дороге он мне не нужен, а дома я как-нибудь использую программатор (не забываем об увеличении габаритов).
По платформе пока всё.
6. По программе поддержки – оформлена красиво, ничего не скажешь, это хороший плюс программы.
7. Теперь о самой программе, лезем в дебри. Программная защита от помех хорошА, но смысла в ней не вижу, поскольку надо бороться с причинами помех, а не их последствиями. Это устраняется аппаратными средствами, а не программными. Чем скоро и займусь. Наработки есть.
8. Очень удивился, когда увидел, что АЦП измеряется только на минимальных оборотах. Это, кстати, в главном цикле.. Длина меток сражает наповал.. Чтобы не быть голословным, фрагменты из оригинала ниже:
Код:
; ОСНОВНАЯ ПРОГРАММА
loop:   rcall   ADCProcessIFStopMode
……
ADCProcessIFStopMode:      
   sbrs   Status,StopModeBit
  ret

К тому же он меряет не 0..255, а 0..3 (нет левого выравнивания). Замеры проверялись?
Код:
.equ   StartADCCmd   = 0b11000111     ;Включить АЦП и установить время….
…………………..
  ldi   A,StartADCCmd         ;Включить АЦП и установить время……
  ldi   XL,ADCSRA
  st   X,A

Что он усредняет в кольцевом буфере, думаю, сами догадались?.. Всё время замера МК топчется на одном месте, отнимая ресурсы:
Код:
waitADCRdy:
   ld   A,Y
   sbrc   A,ADCnotRdyBit
   rjmp   waitADCRdy
   ldi   YL,ADCH 

9. UART… Тут вообще отдельная песня. Зачем тратить пол килобайта ОЗУ на какой-то обмен-это слишком шикарно.
Код:
 Rbuff:         .byte   256      ;Буфер кольцевой принятых команд
Tbuff:         .byte   256      ;Буфер кольцевой отправляемых данных

При настройке (когда подключён UART), ему пофиг, занимается ли процессор расчётом искры или нет –он шурует свой обмен, ну хоть бы флаги запрета поставили:
Код:
; ОСНОВНАЯ ПРОГРАММА
……..
rcall   UARTMODE
……..
UARTMODE:
 rcall   TransmiteData  //Y,B,A
rcall   CheckUARTflags
rcall   ReadCmd
ret

Я понимаю, что обмен идёт только при настройке. Но ведь именно при настройке вы меняете углы или смотрите график.
10. От блока декодирования 24 команд UART (284 строки программы) я слегка окосел.. А нельзя ли было создать индексный буфер в ОЗУ на адреса меток этих 24 команд и обращаться к ним через индексы? Командой ijmp. Буфер бы занял 24 байта, программа -10-15 байт, ну и плюс довесок на куски команд (к декодированию не относится) ещё 30..40 байт. А если бы было 1000 команд? То же касается массива отладочной информации, правда он не большой. Причём обработка этого куска идёт как на приёме, так и на передаче – не забываем, как работает здесь UART, писал выше.
11. Далее про каллиграфию- на скорость не влияет, но если вы решили допилить программу под новые фишки или просто в ней разобраться, вам это не помешает… В программе много подпрограмм, выполняющихся за цикл один раз. Почему они не внедрены в основное тело программы? Может это какой-то блок, ну так в комментарии укажи… Много «глухих» меток – опять укажи в комментариях..
12. Наличие 22 .def и 52 .equ (+24 заккоментированы, но обозначены далее в комментах) превратило программу в шифровки радистки Кэт – читать абсолютно трудно, тем более разбираться в командах. Если по коду команды ещё можно определить, регистр или данные, то различить-константа это или переменная-нет.
13. В силу предыдущего пункта, я допускаю это на время отладки программы, но дальше-нет. Приведено много констант, которые, как сказал asel, повару не нужны. Зачем мне эти коэффициенты непонятные Ка (сейчас понятные), внутреннее или внешнее тактирование, замена частоты МК и т.д., если они в инструкции как пользоваться не описаны.
14. Макросы длиной в 2 команды… Дублирование команд с константами, и даже двойные вызовы подпрограмм…
Код:
  UARTMODE:
  rcall   TransmiteData  //Y,B,A
  rcall   CheckUARTflags
  rcall   ReadCmd
……
ReadCmd: rcall   CheckUARTflags
  sbrs   EStatus,RnewCMDBit      ;Если нет новых команд, выход
ret

15. "Мёртвые макросы" на светодиоды.. Укладка подряд в стек по 11 регистров? Автору регистров не хватает или про ОЗУ забыл? Большинство регистров используется как временные, и сказать, что там хранится-затруднительно.. Что такое? Я понимаю, что тема «Конструктор - Допили сам…», ну так ты же пишешь для людей, оформи программу, чтобы её мог кто-то прочитать.. Из моего небольшого опыта- это самая трудночитаемая программа.. Потому и читал 2 недели.
16. Из хорошего могу только сказать, что продуман алгоритм защиты от помех (мне он ни к чему, причины выше) и хорошо изготовлено описание и управляшка… Но это всё только красивая витрина.. Вроде и 2 Ардуинки у меня появились, но желания ставить их туда нет…Хотел приспособить с неё ДАД и UART в прогу Флеша, но концепция программы не позволяет присобачить ДАД, несмотря на указанные недостатки. Постоянная барабанная дробь UARTa в порт с последующим полнодуплексным обменом (команды-данные) мне тоже ни к чему.
17. Что за порочная практика, складывать .def и .equ из другого .include? Это чтобы пользователь, чтобы разобраться склеивал их все вместе? Мне попадалось подобное с 20 инклудами.
Это не все моменты, можно, например, и про сам обмен Flash с ПЗУ, просто этого достаточно, чтобы я сделал свой выбор.

РЕЗЮМЕ. Повторю, ИМХО. Подключение ДАД (это не резистор, там программа обработки датчика и расчёт точек) невозможно без изменения концепции. А также программа перегружена сервисом, который можно сделать отдельной программой (у Флеша –Прака углов, у меня –Конфигуратор). Кроме того, настраивать кривые по отдельности как?
Программа, бесспорно, рабочая, но это тупик для дальнейших разработок.. Мусор, конечно, можно убрать, ну а толку? Автору писал в личку, но он, «мягко говоря» отказался признавать косяки… Я был бы не против, если бы мне указали недостатки.. Приведено не БЛА-БЛА, а реальная КОНКРЕТИКА. Если кто-то думает иначе, может посмотреть исходники сам.. Если автор не подсуетится. Даже пробовать программу не хочу.. Теперь всё..
Последний раз редактировалось madi044 Чт янв 14, 2021 18:15:20, всего редактировалось 1 раз.

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Чт янв 14, 2021 17:47:36

Подвиг. Я не осилил. Хотя пытался найти новые идеи.
Ардуино? Описывал почему и зачем подробно. Т.е. свои есть плюсы.
Идеи.
1. Еще об ардуино. Уже переписывал (константы) прогу Флэша четко под 16мгц (с делением частоты, она уже выложена в ветке). Потом забросил. И все же еще можно попробовать. Зачем? Если нам нужно сделать быстрые расчеты от датчиков и еще разное, чтобы не тормозил основной цикл..
2. Все никак не могу собраться осилить график на смартфон. Много перечитал. Вроде легко и понятно. но.. не понятно.
3. Возможно обрежу команды uart от Флэша (он сам сказал, что это эксперимент) и будет потом легче.
ПС. Никому это не нужно. Только дайте... готовое

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Чт янв 14, 2021 18:13:21

asel, 1.Расчёты от датчиков переложите после искры, надеюсь датчик детонации ставить не будете?
3. Я бы не обрезал UART Флеша, разве что немного бы улучшил. Забыл, у меня же копирование в буфер перенесено за искру. Сейчас валом новых идей подвалило, не успеваю, иногда надо и работать... Мне нужно... :))

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Чт янв 14, 2021 19:03:05

asel, 1.Расчёты от датчиков переложите после искры, надеюсь датчик детонации ставить не будете?
3. Я бы не обрезал UART Флеша, разве что немного бы улучшил. Забыл, у меня же копирование в буфер перенесено за искру. Сейчас валом новых идей подвалило, не успеваю, иногда надо и работать... Мне нужно... :))

сложно как то с вами. почему то не слышите окружения. Вы давно в Крыму? ну это так...
1. Идея "после датчиков" уже сделана и выложена там... не жалко.
2. Флэш мне дал исходник uart. Изучал (не программер). Пробовал, улучшал, игрался... Но пока так и оставил.
Суть. Не нужно много выдавать инфы в сеть. Но еще зима... :)))

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Чт янв 14, 2021 19:26:42

asel, Про датчики мне не нужно - у меня всё нормально.. Конкретизируйте проблему и выражайтесь яснее, и люди к вам потянутся.. Исходники UART? Что имелось ввиду? Программа правки? Ну так скиньте в личку, не жмотитесь :)) Передарите дареное - в личку..
В Крыму? С монголо-татарского ига... :))

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Чт янв 14, 2021 21:40:12



Придирки по длине меток, макросов и прочего оформления отношу к теме "Мне делать нечего, дайте мне докопаться до столба".
Одно то, что это работает и работает просто на плате из Вашей темы через три проводочка вместо Мега8 «бьет» все ваши придирки и в том числе по алгоритму защиты от помех!
А линейная интерполяция вообще мало у кого есть. Плавное изменении УОЗ от оборотов, а не скачком. Я не совсем уверен, что она нужна на самом деле, но мне это было интересно математически.
Кроме того, много раз писал и еще раз напишу. Входы прерывания на микроконтроллере предназначены для работы в цифровых схемах. Нельзя на них подавать потенциально зашумленный сигнал и реагировать на факт спада или фронта. Повторное чтение обязательно. В Вашей прошивке это тоже было сделано, но по-моему уже когда я опубликовался – вот тут могу ошибиться. До этого момента Вы «ослепляли» вход датчика.

То что касается "разбираться в чужом коде" ….. Буду куски кода тоже показывать...
«..Очень удивился, когда увидел, что АЦП измеряется только на минимальных оборотах....»
Не в режиме малых оборотов, а в режиме СТОП. В режиме любых оборотов (когда есть изменение входных линий) все находиться в другой части, а именно
Ниже метки C_Start:.... rcall StartADC
Ниже метки C_Stop:... rcall ReadADC

«...К тому же он меряет не 0..255, а 0..3 (нет левого выравнивания). Замеры проверялись?...»
«...Что он усредняет в кольцевом буфере, думаю, сами догадались?..»
Левое выравнивание устанавливается в другом регистре (ADMUX) и сделано это в секции инициализации
ldi A,0b01100000+OUZCanBit ;Номер канала мультиплексора АЦП
Всё остальные замечания по АЦП - следовательно от невнимательности.

«...Всё время замера МК топчется на одном месте, отнимая ресурсы:...»
Процессор все время бегает по телу основной программы не отнимает он ресурсы, а выполняет важные действия - обслуживание UART и усреднение по точкам буфера АЦП. В это время прерывания не запрещены и все процессы, связанные с зажиганием полностью обслуживаются. В том, что я предоставил не требовалась эквидистантная выборка значений напряжения на входе АЦП. Все это предназначено для ДПДЗ в виде потенциометра. Новое СРЕДНЕЕ значение появляется на каждом обороте двигателя. Оно точно будет соответствовать положению ДПДЗ после 2 оборотов двигателя и более, если длину буфера усреднения увеличивать конечно:
.equ OUZAverCount= 8 ;!!!Длина кольцевого буфера усреднения отсчетов АЦП OUZAver
Вопрос подключения ДАД пока детально не рассматривался. Надо будет сделаю, вплоть до схемы, вот только точно не буду в качестве операционного усилителя компаратор с ОК применять.

«….UART… Тут вообще отдельная песня….….Я понимаю, что обмен идёт только при настройке. Но ведь именно при настройке вы меняете углы или смотрите график…»
Нет конечно не так. Наслаждайтесь, раз это песня. Моя версия работы с UART носит классический характер. А именно через полную буферизацию. Благодаря этому я могу без ущерба основной роли прошивки по каналу гонять большие массивы информации во время работы зажигания – целиком таблицы, любую отладочную информацию и даже, если надо, данные о режиме работы двигателя (последнее не сделано еще конечно). В основном цикле все данные постепенно перекачается куда надо.

«…При настройке (когда подключён UART), ему пофиг, занимается ли процессор расчётом искры или нет –он шурует свой обмен, ну хоть бы флаги запрета поставили:…. «
Эта Ваша мысль опять таки по невнимательности. Подпрограмма UARTMODE это выделение кванта времени на действие с буферами приема-передачи.
UARTMODE:
rcall TransmiteData //Y,B,A
rcall CheckUARTflags
rcall ReadCmd
ret
Передать, если что есть и команду выполнить , если буфер входной не пуст.

«…От блока декодирования 24 команд UART (284 строки программы) я слегка окосел..»
Во-первых там не только декодирование, но и исполнение их. Во-вторых идеология построения моего алгоритма обмена допускает всего 256 команд. Режим работы: Ведущий-ведомый. Посылка в сторону прошивки всегда короткая – 1 байт. Связано это только с тем, что бы не наносить вред основному предназначению прошивки. Ответ прошивки может быть длинный, но только по команде. Она его передает в свободные «кванты» времени. Поэтому обмен у меня работает УСТОЙЧИВО во всем диапазоне оборотов двигателя. Такая архитектура обмена позволила сделать и управляшку – там тоже полная буферизация и поэтому ничто не тормозит.

«….Далее про каллиграфию- на скорость не влияет, но если вы решили допилить программу под новые фишки или просто в ней разобраться, вам это не помешает…»
Вы что-то попутали товарищ, я её писал, а Вы пилили чужую. Я могу её с легкостью переоблицевать на разные движки - Спасибо товарищам, которые решились на установку. В Ютубе есть видосы. А менять приходиться по большому счету только две процедуры и пару констант – и да мне лично, поскольку реально трудно разобраться в чужой программе.
В теме про одноцилиндровый двигатель если пользователь остался на уровне Главной разметочной таблицы и редактировании констант – то это моя прошивка, и мне за неё отвечать. Если оптимизаторы полезли глубже – это уже их прошивка на основе моей и вопросы уже им задавайте.

«…В программе много подпрограмм, выполняющихся за цикл один раз. Почему они не внедрены в основное тело программы? Может это какой-то блок, ну так в комментарии укажи… Много «глухих» меток – опять укажи в комментариях.. «
Отвечу на это так. Подпрограммы как правило вводятся не только для того, что бы многократно их вызывать. Еще есть задача обозначения скелета программы, процедур ветвления по средствам команд sbrc, sbic и т.д. Это же одно из правил хорошего тона при программировании. Времени на полномасштабные комментарии естественно не хватает… Глухие метки (те, на которые ссылок нет?) – то же для визуальной читаемости мне как автору…

«....Зачем мне эти коэффициенты непонятные Ка (сейчас понятные), внутреннее или внешнее тактирование, замена частоты МК и т.д., если они в инструкции как пользоваться не описаны. …»
Не правда, они в инструкции упоминаются – это раз. Второе – я оставляю за собой право детально не описывать используемые математические формулы. Ka – есть её составная часть и рассчитывается в Главной разметочной таблице. Между прочим, расчетные формулы подогнаны под возможности вычисления МК в формате с фиксированной запятой, линейная интерполяция и прочее.

«….Макросы длиной в 2 команды… Дублирование команд с константами, и даже двойные вызовы подпрограмм…»
С макросами как раз все понятно – как мне удобно, так и делаю. А вот «двойные вызовы» - подловил меня наконец!!! Однако эта подпрограмма отслеживает состояние буферов приема-передачи. Ничего страшного, что уточнил их состояние лишний раз.

«…"Мёртвые макросы" на светодиоды..»
Они существуют только в тексе исходника. Обидно их опять писать, если в процессе адаптации для какой- то задачи они опять потребуются.

«….Укладка подряд в стек по 11 регистров? Автору регистров не хватает или про ОЗУ забыл?..»
А стэк это не ОЗУ? Стэк удобное средство программиста. В конце концов, операция со стеком короче в циклах, чем sts/lds. И наконец – мне так удобнее.

«… Большинство регистров используется как временные, и сказать, что там хранится-затруднительно..»
.def NL = r14 ;Младший байт значения счетчика-измерителя числа оборотов
.def NH = r15 ;Старший байт значения счетчика-измерителя числа оборотов
.def temp = r17 ;Временный регистр
.def PSREG = r5 ;Временный регистр хранения SREG
.def RMaskchain = r4 ;Регистр, содержащий маску-длина защитного протокола.
.def Selectr = r18 ;Селектр в таблице оборотов UOZ
.def zerro = r12 ;Нулевой регистр 0x00!!!
.def full = r13 ;Единичный регистр 0xFF!!!
.def StartChain = r3 ;Цепочка бит протокола защиты от импульсных помех начальной метки
.def StopChain = r2 ;Цепочка бит протокола защиты от импульсных помех конечной метки
.def Events = r25 ;Селектр событий. Четыре старших бита состояние канала LStart. Четыре младших бита состояние канала LStop.
.def DeltaL = r7 ;Ширина выбранного Seleсtr диапазона
.def DeltaH = r8
.def RaznostL = r9 ;Разность между оборотами и нижним пределом выбранного диапазона
.def RaznostH = r10
.def TableAdress = r11 ;Адрес для чтения/записи Таблицы по UART
.def StopCnt = r6 ;Отсчеты моментов переполнения таймера
Лично я вижу один временный регистр temp, который к слову вместе с парой Z у меня предназначен только для использования в программах обработки прерывания. Остальные несут смысловую и функциональную нагрузку в примененном способе расчетов. Я его и не обещал раскрывать, хотя в нем ничего такого нет сложного. Пришлось выкручиваться из ситуации, когда исключил оценку частоты вращения в потенциальный интервал искрообразования – внутри импульса LDELTA. От того формулы приобрели не совсем удобный вид.
;*********************************** Общие регистры
.def A = r19 ;Свободны r0, r1, XL, XH, YL, YH
.def B = r20
.def C = r21
.def D = r22
Это регистры, не несущие никакой нагрузки – используются в качестве РОН.

«… Что за порочная практика, складывать .def и .equ из другого .include? ….»
Поймайте меня еще раз. Я не пойму где это нашли..Разве, что случайно буковки совпали.

«…Это тупик для дальнейших разработок..»
Поживем – увидим.

ИМХО на ИМХО - Ваше сообщение очень похоже на «..Молодой человек, я за Вами бежала 3 километра (..2 недели..), чтобы сказать, что Вы мне глубоко безразличны..».

Удачи в Вашем нелегком труде.

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Чт янв 14, 2021 21:59:55

По сути ничего не увидел..Долго смеялся за сравнение стека с ОЗУ... :)) Разумеется, ОЗУ. Только вот у ОЗУ не бывает срыва, а у стека очень даже, которые компилятор не улавливает... Да и вообще трудно отлавливаются.. А так, нормально..
Вы хамство уже перенесли с лички на ветку? Ну-ну..
Люди посмотрят, увидят сами, да и сами примут решение...

Re: Конструктор ФУОЗ для одногоцилиндрового двигателя

Чт янв 14, 2021 23:18:42

По сути ничего не увидел..Долго смеялся за сравнение стека с ОЗУ... :)) Разумеется, ОЗУ. Только вот у ОЗУ не бывает срыва, а у стека очень даже, которые компилятор не улавливает... Да и вообще трудно отлавливаются.. А так, нормально..
Вы хамство уже перенесли с лички на ветку? Ну-ну..
Люди посмотрят, увидят сами, да и сами примут решение...


..Долго смеялся за сравнение стека с ОЗУ...Это так смешно?
Вы почему-то решили, что Вы в праве безосновательно критиковать чужой труд и давать советы на основании своего представления строения Мира.. Вы, - автор одной модификации, и всех измеряете по этой программе, в устройстве который Вы бесспорно разобрались.

Вы сам решили, что Вы тут самый умный или Вам кто-то это сказал? Я Вам на экспертизу ничего не давал и не спрашивал Вашего мнение.. Может на этом сервере есть некий экспертный совет, и Вы его член?

Считаю это хамством с Вашей стороны.

Вашу программу, сиречь программу Флеша, не буду разбирать на строки и писать про то, что это полный трэш. Во-первых, это не так, и во-вторых это элементарное неуважение. Вы именно это и сделали и при этом лоханулись.

Окей, были замечания и именно замечания, я дал ответ. В части этих ответов Вы выглядите очень не красиво. Также было и вчера. Слово..заслово... Вы встаете в позу и про амбиции мои говорите. Я прекратил общение и удалил переписку - и тут нате Вам рецензия с детальным разбором. Теперь все мои фразы про "бежала" и "докопаться" надеюсь будут понятны людям, как Вы пишете.

Про "Срыв стека". Если это произойдет в классическом понимании, то от Вашего ОЗУ ничего не останется тоже. Указатель стека пробежится сверху вниз по памяти затирая все содержимое. На то и программист, что бы этого не допускать. Стек- это его инструмент. Ваши слова очень похожи на ситуацию - "Отвертка это плохой инструмент, потому, что каждый раз, когда я шуруп вкручиваю я в палец себе попадаю".

И да, по предвосхищая Ваше "алаверды" - вынужден признаться, что я реально дипломированный специалист по цифровой электронике, микропроцессорной технике и цифровой обработке сигналов с классическим университетским образованием и могу делать профессиональные выводы по этой теме. Да, в осознании тонкостей в функционировании ДВС мне нужна помощь, и добрые люди помогают.

Всего Вам хорошего!
Ответить