Страница 4 из 6 ПерваяПервая 123456 ПоследняяПоследняя
Показано с 31 по 40 из 54

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    59
    Сообщений
    241
    Вес репутации
    215

    По умолчанию Re: PPM энкодер на ...дуино

    Цитата Сообщение от Chip Посмотреть сообщение
    Я тебе предлагал, но ты как то не отреагировал, ты можешь повесить все свои сигналы на PortC и через диоды обьеденить на одном входе с настроенным прерыванием
    Почему, я в заметочку поставил. Потом просто из интереса, залез в приемник и вытащил PPM сигнал до разделения по каналам. Получилось один провод и питание.

    Цитата Сообщение от Chip Посмотреть сообщение
    Если вход в воздухе не будет висеть то нет смысла подтягивать
    Нет, я намертво соединяюсь и при включении ардуины, с нее питание идет через фильтр прямо на приемник, т.е нет вариантов "в воздухе" , другое дело, что после включения приемника, он инициализируется и на проводе PPM в течении 2 сек низкий уровень, потом пошли пачки импульсов.
    Это не критично?

    -------------------
    Не в тему...
    Прошу прощения, Chip, я не знаю как по имени, но наверно Вы немного преувеличиваете мои познания в программировании. Я из ваших примеров узнал про существование прерываний и экспериментировал с ними, потом самостоятельно разобрался с OCR, но сегодня добавилось EICR и некоторые прочие "вкусности".
    Дайте мне немного времени и я разберусь, задавая возможно некорректные вопросы. Продолжаю разбирать скетчь.
    Последний раз редактировалось Mastar; 25.11.2011 в 12:07.
    Мои проекты - Катер для рыбалки

  2. #2
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    59
    Сообщений
    241
    Вес репутации
    215

    По умолчанию Re: PPM энкодер на ...дуино

    Цитата Сообщение от Chip Посмотреть сообщение
    Кстати посмотрел Ардуиновкую либу, судя по коду там все 8 прерываний можно использовать.
    Мне больше Ваш вариант нравится, компактный, а значит имеющий меньше глюков и прост в понимании.
    Я еще узнал, что можно и аналоговые входы использовать как внешнее прерывание, в котором можно устанавливать порог срабатывания. Правда сейчас мне это не нужно.

    Хочу быстрее разобраться с чтением PPM и получить в переменных СН1-СН8 значения длительности отрицательных импульсов, усреднить и передать на управление сервоприводами. Положительные импульсы и пауза нужны только для контроля верного сигнала.

    Еще не помешает в переменной Error получить значения типа:
    0 - нет сигнала ( в течении 1-2 сек. нет паузы )
    1 - помеха (есть пауза, но положительные импульсы иногда короче или длинее 450-550 мкс. )
    2 - норма
    3-7 - для другой части программы, где будет контролироваться: аналоговые сигналы RSSI(величина ВЧ сигнала на входе приемника - отдельный провод с приемника), напряжение питания и температура разных элементов.
    Последний раз редактировалось Chip; 25.11.2011 в 13:50.
    Мои проекты - Катер для рыбалки

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

    По умолчанию Re: PPM энкодер на ...дуино

    Попробуй вот так
    PHP код:
    void setup()    
    {  
      for(
    int x 1822x++){pinMode(xINPUT); digitalWrite(xHIGH);}    
      
    pinMode(2INPUT); digitalWrite(2HIGH);
      
    pinMode(3INPUT); digitalWrite(3HIGH);
      
      
    attachInterrupt(0INT_0FALLING); 
      
    attachInterrupt(1INT_1FALLING);  
      
    attachInterrupt(2INT_2FALLING);  
      
    attachInterrupt(3INT_3FALLING);  
      
    attachInterrupt(4INT_4FALLING);   
      
    attachInterrupt(5INT_5FALLING); 
      
    attachInterrupt(6INT_6FALLING);   
      
    attachInterrupt(7INT_7FALLING);  
     
      
    Serial.begin (115200);   
    }   

    void loop()   
    {     
    }   

    // обработка прерывания   
    void INT_0()   
    {   
    }     
    // обработка прерывания   
    void INT_1()   
    {   

    // обработка прерывания   
    void INT_2()   
    {      
    }   
    // обработка прерывания   
    void INT_3()   
    {  
    }  
    // обработка прерывания   
    void INT_4()   
    {   
    }     
    // обработка прерывания   
    void INT_5()   
    {   

    // обработка прерывания   
    void INT_6()   
    {      
    }   
    // обработка прерывания   
    void INT_7()   
    {  

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

  4. #4
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    59
    Сообщений
    241
    Вес репутации
    215

    По умолчанию Re: PPM энкодер на ...дуино

    Цитата Сообщение от Chip Посмотреть сообщение
    Скетч который я выкладывал работает, попробуй его еще раз, а то может ты успел его попробовать до того как я подправил
    Не спорю, но у меня подключен вход на PORTE4, поэтому и начал исправлять.

    ----

    Попробовать не проблема, минут через 5-10, но я хотел добить тот вариант, а пока не разобрался до конца с регистрами.

    ISR(INT4_vect)
    if (PINE & (1<<4))

    а тут как E4 = ICS60?

    EICRB &= ~((1<<ISC??)|(1<<ISC??))
    EICRB |= (1<<ISC??)
    Мои проекты - Катер для рыбалки

  5. #5
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    59
    Сообщений
    241
    Вес репутации
    215

    По умолчанию Re: PPM энкодер на ...дуино

    Попробуй вот так
    Так его доделать нужно, иначе я ничего не увижу?
    Мои проекты - Катер для рыбалки

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

    По умолчанию Re: PPM энкодер на ...дуино

    Цитата Сообщение от Mastar Посмотреть сообщение
    Так его доделать нужно, иначе я ничего не увижу?
    Ну так там все просто поставь в нужном прерывании включение светодиода (L)

  7. #7
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    59
    Сообщений
    241
    Вес репутации
    215

    По умолчанию Re: PPM энкодер на ...дуино

    Цитата Сообщение от Chip Посмотреть сообщение
    Ну так там все просто поставь в нужном прерывании включение светодиода (L)
    Я в порт отправлял и при подключении к пин2 выдавало 0, при пин3 выдавало 1. Работает.
    PHP код:
    void setup()     
    {   
      for(
    int x 1822x++){pinMode(xINPUT); digitalWrite(xHIGH);}     
      
    pinMode(2INPUT); digitalWrite(2HIGH); 
      
    pinMode(3INPUT); digitalWrite(3HIGH); 
       
      
    attachInterrupt(0INT_0FALLING);  
      
    attachInterrupt(1INT_1FALLING);   
      
    attachInterrupt(2INT_2FALLING);   
      
    attachInterrupt(3INT_3FALLING);   
      
    attachInterrupt(4INT_4FALLING);    
      
    attachInterrupt(5INT_5FALLING);  
      
    attachInterrupt(6INT_6FALLING);    
      
    attachInterrupt(7INT_7FALLING);   
      
      
    Serial.begin (115200);    
    }    

    void loop()    
    {      
    }    

    // обработка прерывания    
    void INT_0()    

      
    Serial.println ("0");
    }      
    // обработка прерывания    
    void INT_1()    
    {
      
    Serial.println ("1");  
    }  
    // обработка прерывания    
    void INT_2()    

      
    Serial.println ("2");  
    }    
    // обработка прерывания    
    void INT_3()
    {
      
    Serial.println ("3");  
    }   
    // обработка прерывания    
    void INT_4()    
    {   
       
    Serial.println ("4"); 
    }      
    // обработка прерывания    
    void INT_5()    
    {    
        
    Serial.println ("5");
    }  
    // обработка прерывания    
    void INT_6()    
    {
      
    Serial.println ("6");  
    }    
    // обработка прерывания    
    void INT_7()    
    {   
        
    Serial.println ("7");

    Мои проекты - Катер для рыбалки

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

    По умолчанию Re: PPM энкодер на ...дуино

    ISR(INT4_vect)
    if (PINE & (1<<4))

    E4 = ICS4х

    EICRB &= ~((1<<ISC40)|(1<<ISC41))
    EICRB |= (1<<ISC40)
    EIMSK |=(1<<INT4);

  9. #9
    Продвинутый
    Регистрация
    28.11.2010
    Возраст
    59
    Сообщений
    241
    Вес репутации
    215

    По умолчанию Re: PPM энкодер на ...дуино

    В скетче из 23 поста положительные импульсы не воспринимает, всегда выдает 0, а вот отрицательные отлавливает, но выдает странные значения.
    Я еще разберусь с установками таймера под свою мегу, т.к. помню, что из скетча Ардулайт у меня сразу не заработало, изменил регистры под свою плату в таймере и все заработало.

    Приятно, что не зависает при выключении - включении передатчика.
    Ближе к вечеру снова займусь.
    Мои проекты - Катер для рыбалки

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

    По умолчанию Re: PPM энкодер на ...дуино

    Может странные значения от того что куда нибудь не туда вставляешь serialprint ?

Страница 4 из 6 ПерваяПервая 123456 ПоследняяПоследняя

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

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

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

Ваши права

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