Показано с 1 по 10 из 26

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Модератор
    Регистрация
    06.07.2008
    Возраст
    47
    Сообщений
    414
    Вес репутации
    451

    По умолчанию Re: Генератор работы форсунок инжекторного двигателя

    Mastar, осознал задачи.

    Такие вещи в идеале, конечно програмятся на ассемблере, но мы будем рассматривать шарообразный конь в вакууме (с) анекдот. Поэтому достаточно писать на С.

    Итак, делим задачу на две - генерацию импульсов и подготовку данных для генерации импульсов. Пока рассматриваем первую задачу.

    Чтобы подобное написать, надо запрограммировать таймер на выполнение каждые 100 мкс, к примеру. Для начала - можно и медленее запустить хоть раз в 10мс, растянув весь процесс во времени.

    Затем создаешь комплект переменных для одной форсунки, в которых указываешь на какой вызов таймера эта форсунка должна потянуть за ножку, на какой - отпустить. В сложном случае - начиная с какого вызова и по какой - ШИМить и как шимить.

    Таймер поступает просто - он с каждым вызовом увеличивает счетчик на 1 и выполняет все, что нужно выполнить для этого состояния счетчика - открывает форсунку, к примеру.

    На этом этапе и со скоростью таймера 10мс тебе еще хватит ардуины. Когда будешь переходить на нормальную скорость таймера, придется уйти от некоторого кода arduino, заменив более быстрым аналогом.

    Нужно продумать переменные для каждой форсунки, чтобы они были максимально независимыми.

    К примеру переменные (не продумывал серьезно):
    1. Длительность двух оборотов в вызовах таймера
    2. Момент открытия форсунки после начала двух оборотов
    3. длительность открытия форсунки

    У этих переменных есть недостаток - нет возможности сообщить таймеру, что оборот начнется через 3 вызова таймера. Или начался 4 вызова назад.

  2. #2
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    60
    Сообщений
    241
    Вес репутации
    229

    По умолчанию Re: Генератор работы форсунок инжекторного двигателя

    Цитата Сообщение от SBorovkov Посмотреть сообщение
    ...
    Чтобы подобное написать, надо запрограммировать таймер на выполнение каждые 100 мкс, к примеру
    ...
    Хочется именно с этого момента и начать .
    Вот, как раз это и не получается у меня, не могу разобраться как заставить таймер тактировать именно 10 мкс.
    Но тут палка о двух концах, если например обороты = 600 ( 200 мс! ), а импульс например 3 мс, то как быть с переполнением при отсчетах по 10 мкс? Ведь получается нужно 20000 отсчетов?

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •