Показано с 1 по 9 из 9

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

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #4
    Продвинутый
    Регистрация
    19.02.2010
    Возраст
    47
    Сообщений
    244
    Вес репутации
    240

    По умолчанию Re: Как измерить скважность ШИМ.

    Так будет работать?

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

    #define LEDPIN 13        // Вывод светодиода
    #define BTNPIN 2 

    volatile uint16_t duty=0;
    volatile uint16_t timeRising 0;
    volatile uint16_t timeFalling 0;

    void setup()
    {  
    /*
        LOW — вызов прерывания всякий раз, когда на порту низкий уровень напряжения;
        CHANGE – прерывание вызывается при изменении значения на входе;
        RISING – вызов прерывания при изменении уровня напряжения с низкого (LOW) на высокое(HIGH)
        FALLING – вызов прерывания при изменении уровня напряжения с высокого (HIGH) на низкое (LOW)
      */
      
    pinMode(BTNPININPUT);    
      
    Serial.begin(115200);
      
      
    Timer1.initialize(20);
      
    Timer1.attachInterrupt(callback);  // attaches callback() as a timer overflow interrupt

      
    attachInterrupt(0fireUpRISING);
    }
    void callback() {  duty=20/(timeFalling-timeRising); } //делим период на ширину импульса

    void loop()
    {
      
    }

    // Функция обработки прерывания на подъем
    void fireUp()
    {
      
    detachInterrupt(0);
      
    timeRising millis();
      
    attachInterrupt(0fireDownFALLING);
    }

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

    Последний раз редактировалось BlkDem; 11.06.2011 в 16:22.

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

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

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

Ваши права

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