Таймер

Тема в разделе "Arduino & Shields", создана пользователем Михаил123, 6 июл 2022.

  1. Есть часть кода от примера с таймером. Подскажите, как буде называться процедура обработчика для него?
    Код (C++):
    // настроить таймер
    void initTimer() {
      TCCR1A = 0;
      // CTC по OCR1A, делитель /64
      TCCR1B = bit(WGM12) | 0b011;
    }

    // установить период
    void setPeriod(uint32_t prd) {
      // один тик таймера - 4 мкс (при 16 МГц клоке)
      OCR1A = (uint32_t)prd >> 2;
    }

    // запустить и сбросить таймер
    void startTimer() {
      TIMSK1 = bit(OCIE1A);
      TCNT1 = 0;
    }

    // остановить таймер
    void stopTimer() {
      TIMSK1 = 0;
      TCNT1 = 0;
    }
    ISR() ?
     
  2. b707

    b707 Гуру

    пример полный бред, с какого перепугу регистр TIMSK стартует и останавливает таймер?
     
    DetSimen нравится это.
  3. Рокки1945

    Рокки1945 Гуру

    Выбирай любой
    upload_2022-7-6_18-22-32.png
     
    Михаил123 нравится это.
  4. parovoZZ

    parovoZZ Гуру

    вектор входа прерывания? Так их несколько. Рокки выше привел таблицу с их списком.
    Счётчик таймера останавливается и запускается установкой значения предделителя, а не регистром TIMSK. Последний заведует прерываниями.
     
  5. Однако, есть у меня непонимание работы с шаговым.
    есть двигатель типа нема 17.
    Есть драйвер к нему ТБ6600.

    Есть понимание (из художественной литературы) о том, что чем чаще я даю команду на вращение tick(), тем лучше. Но ведь есть, наверно, какой то разумный предел этой частоте.
    у меня сейчас по прерыванию это делается с частотой 15000 герц. Не дофига ли?
    на двигатель я даю скорость 18000 шагов.
    как, вообще, математически можно рассчитать все эти моменты?
    на драйвере стоит делитель 8.
    если я переключаю на другие делители, бывает, двигатель встает, или сильно греется.
     
  6. DetSimen

    DetSimen Гуру

    Потому что его раскручивать надо постепенно, а не сразу 15 килогерц пхать ему в глотку, от этого он давится и плачет.
     
  7. интересное суждение. можно раскрыть эту тему подробнее?
     
  8. а так же есть мысль о том, что при каждом изменении скорости, он начинает стартовать заново, с нуля. Как это победить?
     
  9. parovoZZ

    parovoZZ Гуру

    про инерцию слышал чо?
     
  10. конечно
     
  11. DetSimen

    DetSimen Гуру

    Программиста гнать в три шеи, ссаными тряпками, найти грамотного.
     
  12. vvr

    vvr Инженерище

    а ещё есть калькулятор расчёта максимально возможной скорости шаговика.
    не факт, что он даже с разгоном ваши 15000 скушает....
     
    DetSimen нравится это.
  13. parovoZZ

    parovoZZ Гуру

    да скушает, только придётся ток вкачивать.