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

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #10
    Модератор Аватар для XsanderS
    Регистрация
    05.05.2008
    Возраст
    42
    Сообщений
    829
    Вес репутации
    405

    По умолчанию Re: Н-Мост на MOSFET+Arduino

    PHP код:
    #include <TimerOne.h>

    #define BTNPIN 2 // Вход сигнала
    #define L 5         // Выход на H-Мост вращение в лево
    #define R 6         // Выход на H-Мост вращение в право

    volatile uint16_t startImpuls;
    volatile uint16_t lengthImpuls;
    volatile uint16_t timerCount=0;

    void setup()
    {  

    /* LOW — вызов прерывания всякий раз, 
        когда на порту низкий уровень напряжения;
        CHANGE – прерывание вызывается при изменении 
        значения на входе;
        RISING – вызов прерывания при изменении уровня 
        напряжения с низкого (LOW) на высокое(HIGH)
        FALLING – вызов прерывания при изменении уровня 
        напряжения с высокого (HIGH) на низкое (LOW)*/
      
      
    startImpuls=0;
      
    lengthImpuls=0;
      
      
    pinMode (BTNPININPUT); 
      
    pinMode (LOUTPUT);
      
    pinMode (ROUTPUT);

      
    Serial.begin(115200);

      
    Timer1.initialize(10);                // Интервал срабатывания таймера 10мкс
      
    Timer1.attachInterrupt(callback);

      
    attachInterrupt(0fireUpRISING); // Запуск таймера при наличии сигнала HIGH

    }
    void callback() {  timerCount++; }

    void loop()
    {
       if (
    lengthImpuls 0
      { 
         
    uint16_t li lengthImpuls
         
    lengthImpuls=0;
      
         if (
    li 100  && li 150)   // эамер сигнала для вращения в лево
         
    analogWrite (L23 li);
         
         if (
    li 155  && li 200)   // эамер сигнала для вращения в право
         
    analogWrite (R23 li);
      }   
     }

    // Функция обработки прерывания на подъем
    void fireUp()
    {

      
    detachInterrupt(0);
      
    startImpuls timerCount;
      
    attachInterrupt(0fireDownFALLING);
    }

    // Функция обработки прерывания на падение
    void fireDown()
    {
      
    detachInterrupt(0);
      
    lengthImpuls timerCount startImpuls;
      
    startImpuls=0;
      
    timerCount=0;
      
    attachInterrupt(0fireUpRISING);

    Последний раз редактировалось XsanderS; 20.10.2011 в 21:53.
    хороший модем должен качать пиво!
    Мой проект

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

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

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

Ваши права

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