Многопоточность на AVR, это возможно?

Тема в разделе "Микроконтроллеры AVR", создана пользователем Алексей132, 11 июл 2019.

  1. Коллеги, какой день мучаюсь над проблемой многопоточности в atmega. Делал через <pthread.h>, на visual studio все работает и компилируется, но в atmel studio просто никак не может скомпилироваться. Кто нибудь делал многопоточность на avr, если да, то подскажите какие библиотеки для этого можно задействовать?
     
  2. DetSimen

    DetSimen Гуру

    какая многопоточность тебе нужна и для чего?
    Когда мне надо опрашивать даччики и откликаться на их изменения асинхронно, я использую таймеры и очередь сообщений. И всё крутится независимо друг от друга, например, вывод на экран и опрос даччиков температуры/давления/освещенности/звука.
     
  3. DetSimen

    DetSimen Гуру

    примерчик дать?
     
  4. DetSimen

    DetSimen Гуру

    А, сопсно, реальной многопоточности, как у Виндовс, в AVR нет. Ну так там и памяти - котнакакал, сохранять взрослый контекст задач просто негде. Да там, если чесно, и планировщик-то запускать негде. Вернее, есть где, но многозадачность получится вытесняющая, в том смымле, что планировщик вытеснит все остальные задачи. (всех убью, один останусь) :)
     
    Kamikadze и Airbus нравится это.
  5. На одном чипе atmega 2560 - две разные программы, первая программа по spi датчик опрашивает, вторая формирует дисктреные сигналы по таймеру для другого датчика, поэтому и хотел параллельно запустить.

    Я вот сейчас 1 программу с spi не трогаю она работает в цикле, а для второй такой вот план - осцилограф подцепил сейчас и в цикле запустил счетчик "a = a+1", и пытаюсь подобрать значение переменной - "a", в зависимости от велчины "a" через if подаю команды на включение и отключение выхода (на осцилограффе нужные интервалы подбираю для второй программы) , или можно проще сделать?
     
  6. Yuriy.pv

    Yuriy.pv Нуб

    У АВР многозадачность .. эт вы сильно пошутили. Как минимум в сторону АРМ смотреть надо. Как вам сказали тут, максимум вытесняющий задачник. Можно и потоки сделать, но скорости не получите.
     
  7. DetSimen

    DetSimen Гуру

    Пока я не знаю параметры "дисктреных" сигналов, ничо не могу сказать.
     
  8. аааа!!! да чтоб меня, все дороги ведут на ARM.... не первый раз уже советуют, видимо надо двигаться туда уже
     
  9. parovoZZ

    parovoZZ Гуру

    Порт RTOS под архитектуру AVR существует. И да: AVR - это не только абдуино. Atxmega-это тоже AVR. А вычислительная способность там сопоставима с cortex-m0. Поэтому про arm не надо тут.
     
  10. parovoZZ

    parovoZZ Гуру


  11. спасибо большое, буду пытаться через atmel studio установить
     
  12. Yuriy.pv

    Yuriy.pv Нуб

    Хмега это хорошо но 32мгц эт не так и много, если пару потоков мож и хватит.. ну опять же смотря что хотите реализовать и какими способами..
     
  13. Asper Daffy

    Asper Daffy Гуру

    Лучше уж сразу на Summit.
     
  14. Спасибо за информацию
    ATXMEGA256A1-AU
    - действительно хорош, буду брать!! причем и ADC еще есть на 12 бит и 2 Мсамп
     
  15. Igor68

    Igor68 Гуру

    Вы про AVR32 ? Слышал о таком, но не видел.
     
  16. parovoZZ

    parovoZZ Гуру

    А как тактовая частота увязана с количеством потоков?
     
  17. DetSimen

    DetSimen Гуру

    думаю, у тебя просто архитектура не продумана, обычной Меги за глаза хватить для 146% здешних праэктиков.
     
    Asper Daffy и parovoZZ нравится это.
  18. parovoZZ

    parovoZZ Гуру

    32 бита в авр? Я даже не слышал.
     
  19. parovoZZ

    parovoZZ Гуру

    Вот только его придётся изучать полностью заново. Можешь почитать мои посты про новые тинька.
     
  20. DetSimen

    DetSimen Гуру

    Если ты думаешь, что это панацея - то ошибаешься. Если что-то можно написать на ATXMEGA256, значит и на обычной можно, не X.