Показано с 1 по 9 из 9
  1. #1
    Новичок
    Регистрация
    15.01.2012
    Возраст
    35
    Сообщений
    19
    Вес репутации
    155

    По умолчанию Внешнее прерывание???

    Здравствуйте все!! Вопрос в следующем: написал скетч с внешним прерыванием, вот код:


    PHP код:
    int interrupt 0//pin 2 - аппаратное прерывание 
    int pwm 6;
    int led 13;

    boolean ledOn LOW;
    volatile int count_itr;
    volatile int vd;
    int pwm_value 254;

    void setup ()
    {
      
    Serial.begin (9600);
      
    attachInterrupt (interruptintrCHANGE); 
      
    analogWrite (pwmpwm_value);
    }

    void loop ()
    {  
      
    Serial.print("loop ");
        
    Serial.println(pwm_value);
      
    Serial.print("colich_ itr ");
        
    Serial.println(count_itr);
      
    Serial.print("vd ");
      
    Serial.println(vd);
    delay (2000);  
    }

    void intr ()
    {
     
    Serial.println ("Itr");
      
    ledOn = !ledOn;
      
    digitalWrite (led,ledOn); 
      
    count_itr++;
      
    vd++;

    pwm - идет на неинвертирующий вход LM358 на инвертирующий вход приходит значение с которым оно сравнивается, результат соответственно идет на pin2 (INT0). Когда на pwm 0 или 255, то прерывания не происходит (на выходе компаратора 0 и 3,6 вольт), когда я ставлю любое другое значение (даже 254) он уходит в постоянные прерывания. Заранее спасибо за ответы.
    Последний раз редактировалось StopTyssin88; 08.04.2012 в 21:59.

  2. #2
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Внешнее прерывание???

    А что это? ledOn = !ledOn;
    инвертировать нужно только вот так ledOn = ~ledOn;
    Последний раз редактировалось Chip; 08.04.2012 в 16:01.

  3. #3
    Новичок
    Регистрация
    15.01.2012
    Возраст
    35
    Сообщений
    19
    Вес репутации
    155

    По умолчанию Re: Внешнее прерывание???

    Я подсмотрел такое инвертирование у Джереми Блума, в его туториалах по Arduino, у него так. Теперь буду знать что так неправильно, спасибо. Но это главной проблемы не исправило(((

  4. #4
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Внешнее прерывание???

    Прерывание срабатывает стабильно , я проверил .

  5. #5
    Новичок
    Регистрация
    15.01.2012
    Возраст
    35
    Сообщений
    19
    Вес репутации
    155

    По умолчанию Re: Внешнее прерывание???

    Тогда я не пойму что не так? Когда я прошиваю скетч и ставлю не 255 или не 0 он все время находится в прерывании. Хотя на выходе компаратора LM358 допустим при pwm_value = 254 стабильно 3,57 вольт а он при этом он находится все время в прерывании

  6. #6
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Внешнее прерывание???

    Он находится в обработчике по причине того что Serial.println занимает много времени
    и при выходе из обработчика он опять попадает в него

  7. #7
    Новичок
    Регистрация
    15.01.2012
    Возраст
    35
    Сообщений
    19
    Вес репутации
    155

    По умолчанию Re: Внешнее прерывание???

    Я тоже так думал, поэтому к не инвертирующему входу LMки я дал фиксированный сигнал PWM = 254 а к другому дал сигнал с pwm, который получал с потенциометра и он по прежнему находится в прерываниях даже когда на потенциометре 0

  8. #8
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Внешнее прерывание???

    Ты лучше убери из обработчика Serial.println

  9. #9
    Новичок
    Регистрация
    15.01.2012
    Возраст
    35
    Сообщений
    19
    Вес репутации
    155

    По умолчанию Re: Внешнее прерывание???

    Убрал serial.println, проблема не решилась. При этом если выставлять опорное напряжение для компаратора на lm358 не через pwm дуины все начинает работать как надо, как только связываюсь с pwm он улетает в постоянные прерывания(((

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

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

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

Ваши права

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