Страница 2 из 8 ПерваяПервая 12345678 ПоследняяПоследняя
Показано с 11 по 20 из 73
  1. #11
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,382
    Вес репутации
    10

    По умолчанию Re: Прерывания в Arduino.

    Класть в папку со всеми библиотеками \arduino-0018\libraries\MsTimer2

    Можно и без библиотеки сделать прерывание по таймеру
    PHP код:
    volatile unsigned int tcnt2;
    void setup() 
    {
           
    TIMSK2 &= ~(1<<TOIE2); //разрешения прерывания по переполнению таймера/счетчика Т2 
        
    TCCR2A &= ~((1<<WGM21) | (1<<WGM20));// Режим работы таймера/счетчика
        
    TCCR2B &= ~(1<<WGM22);// Режим работы таймера/счетчика
        
    ASSR &= ~(1<<AS2);  //Выбор источника синхронизации таймера если AS2=0 от системного генератора
        
    tcnt2 1//  16000000/64/f=tcnt2
        
    TIMSK2 |= (1<<TOIE2);//Разрешение прерывания по переполнению Т2.
    }

    void loop() 
    {


    void MyInterupt()
    {
    //обработчик вашего прерывания
    }  
    //****************обработчик прерывания********************
    ISR(TIMER2_OVF_vect
    {
        
    TCNT2 tcnt2;
        
    MyInterupt();

    Последний раз редактировалось Chip; 08.03.2010 в 00:42.

  2. #12
    Продвинутый
    Регистрация
    23.02.2009
    Сообщений
    352
    Вес репутации
    264

    По умолчанию Re: Прерывания в Arduino.

    а такие конструкци прокатывают?

    ....
    attachInterrupt(0, MeasureSPD, RISING); //attaching intterrupt to pin D2
    ....

    while (digitalRead(2)) i++;

    я в сысле о том, можно ли привязать прерывание к ноге и потом считывать ее состояние?

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

    По умолчанию Re: Прерывания в Arduino.

    Не понял смысла? Если назначили прерывание на ногу то зачем состояние проверять? Прерывание и так сработает по изменению состояния

  4. #14
    Продвинутый
    Регистрация
    23.02.2009
    Сообщений
    352
    Вес репутации
    264

    По умолчанию Re: Прерывания в Arduino.

    да мне ж длительность имульса подсчитать. соответственно от старта и до упора.
    или мож какой другой метод использовать, встроенный таймер там или еще что

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

    По умолчанию Re: Прерывания в Arduino.

    Для подсчета можно использовать следующие функции
    unsigned long millis()
    unsigned long micros()

  6. #16
    Продвинутый
    Регистрация
    23.02.2009
    Сообщений
    352
    Вес репутации
    264

    По умолчанию Re: Прерывания в Arduino.

    millis и micros не совсем то что надо. хотя мож и пойдет
    надо прерывание делать на CHANGE и измерять типа micros(t2)-micros(t1).
    я опасался ситуации, когда импульс начнется, а потом машина остановится и длина импульса уйдет в бесконечность. да черт с ней, вообще-то

  7. #17
    Модератор
    Регистрация
    06.07.2008
    Возраст
    46
    Сообщений
    414
    Вес репутации
    442

    По умолчанию Re: Прерывания в Arduino.

    По-моему у всех машин несколько (от 5) импульсов на 1 метр пути. 1 метр в секунду - это 3.6 км/ч. Так что если тебе не надо отслеживать очень низкие скорости, достаточно считать импульсы. По любому прерыванию изменения состояния ноги увеличиваешь счетчик, а 1-3 раз в секунду считываешь этот счетчик и сразу обнуляешь.
    И все, будет у тебя скорость, которую только надо на константу умножить.

    Если надо точнее, чем 1 кмч, и/или низкие скорости, то напиши, у меня в голове вертится алгоритм, но он посложнее.

  8. #18
    Продвинутый
    Регистрация
    23.02.2009
    Сообщений
    352
    Вес репутации
    264

    По умолчанию Re: Прерывания в Arduino.

    не, мне 20кмч плюс-минус отловить. двери хочу закрывать. привык, а на альфарде нету закрывалки. наверное с микрос() сделаю

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

    По умолчанию Re: Прерывания в Arduino.

    static boolean output = HIGH;
    Подскажите, а для чего используется эта строка ?

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

    По умолчанию Re: Прерывания в Arduino.

    для того чтобы на пине output включить логическую еденицу

Страница 2 из 8 ПерваяПервая 12345678 ПоследняяПоследняя

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

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

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

Ваши права

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