wiki.js/ru/Code_overview.md

33 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: Обзор кода Code_overview
description:
published: true
date: 2021-01-05T11:05:12.306Z
tags:
editor: markdown
dateCreated: 2021-01-05T11:03:02.376Z
---
# Обзор кода
Описание кода низкого уровня каждого файла и его назначение можно найти на странице Doxygen: https://speeduino.github.io/speeduino-doxygen/files.html
## Высокоуровневое описание контура управления Speeduino
Основной цикл в файле "speeduino.ino" работает постоянно и имеет 2 основных функций, определяя требования к двигателю и устанавливая графики зажигания/впрыска в соответствии с этими требованиями.
Ниже приведено описание функций высокого уровневня, выполняемых в основном цикле:
- Проверка наличия запроса в последовательном буфере для обработки
- Посмотрите, поворачивается коленвал двигателя, глядя в последний раз, когда был замечен зуб реперного диска
- Считывание значений со всех аналоговых датчиков (TPS, IAT, CLT, MAP, O2, напряжение батареи). Не все датчики считываются каждый раз, так как они не меняются достаточно часто, чтобы гарантировать это
- Следующие функции выполняются только в том случае, если модуль синхронизации 'sync':
- Проверьте, не превышает ли частота вращения минимальную частоту прокрутки (При прокрутке двигателя значения топлива и зажигания регулируются)
- Выполните все функции корректировки (см. раздел corrections.ino ниже). Результатом этого является %, на который будет регулироваться ширина пульса (100% = без регулировки, 110% = 10% больше топлива, 90% = 10% меньше топлива).
- Поиск VE из основной топливной таблицы
- Преобразование VE в значение ширины импульса в мс
- Поиск требуемого опережения из таблицы зажигания
- Рассчитать текущий угол коленвала
- Рассчитать угол поворота коленвала, при котором каждый инжектор должен открываться, исходя из текущей частоты вращения двигателя
- Рассчитать угол выдержки на основе требуемого времени выдержки и текущей частоты вращения двигателя
- Рассчитать угол начала зажигания для каждого цилиндра путем вычитания угла опережения и угла задержки из угла ВМТ - Набор 'график' для каждого инжектора, преобразовывая вышеупомянутое расчетное начало поворачивает во много нас в будущем (Например, если инжектор должен начать открываться при 45 после ВМТ, а угол поворота кривошипа в настоящее время составляет 10 перед ВМТ, сколько времени потребуется для перемещения этих 55 градусов)
- Выполнить одну и ту же настройку графика для каждого выхода зажигания