Посылать информацию ою активности портов во внешнюю программу

flighttothemoon
Offline
Зарегистрирован: 07.11.2011

Пишу add-on к одной программе. Нужно получать данные от Arduino об активности того или иного выхода (14 выходов). High или Low. Чтобы Arduino посылала по serial port информацию о том, какой из портов сейчас активен. Вот, думаю, как это сделать, в какой форме посылать. У кого какие мысли?

Mastino
Offline
Зарегистрирован: 03.12.2011
flighttothemoon
Offline
Зарегистрирован: 07.11.2011

А нельзя это каким-то другим образом проверить? Причина - нужно чтобы на arduino в этот момент работали другие программы

Mastino
Offline
Зарегистрирован: 03.12.2011

flighttothemoon пишет:

А нельзя это каким-то другим образом проверить?

Что проверить?

flighttothemoon пишет:

Причина - нужно чтобы на arduino в этот момент работали другие программы

какие программы?

flighttothemoon
Offline
Зарегистрирован: 07.11.2011

Попытаюсь объяснить подробнее. Пишу курсовую на эту тему. Нужно написать графический блок для scilab (аналог matlab), который бы изображал в arduino в среде симуляции scilab. Чтобы проводить различный эксперементы с arduino, например с ПИД. Нужно, что информация на входах и выходах физического arduino отображалась также и в этом графическом блоке на его входах и выходах.

Mastino
Offline
Зарегистрирован: 03.12.2011

Как говорит один мой знакомый:
Если понятие минимальное, а задачи высоки.. - лучше сменить занятие..:)

step962
Offline
Зарегистрирован: 23.05.2011

flighttothemoon пишет:

 нужно чтобы на arduino в этот момент работали другие программы

Что значит "в этот момент"? Любой микроконтроллер выполняет инструкции строго одну за другой и, строго говоря, ваша задача получается неразрешимой. В том виде, в котором вы ее сформулировали.

Но возможно вы говорите об одновременности с человеческой точки зрения и для "других программ" не случится ничего страшного, если они постоят несколько микросекунд в ожидании своей очереди на обработку? Ну так организуйте некое подобие "взрослой" операционной системы с поочередным выделением ресурвос всем программам, которые будут крутиться у вас в мк:

- прочитали за полсотни тактов значения регистров ввода,

- выполнили несколько операций, необходимых для "других программ"

- вывели информацию в регистры вывода

- выполнили несколько операций по обработке команд или данных от "других программ"

- перешли на первый шаг

Будет у вас четыре или тридцать четыре шага, подобных представленным мною - будет зависеть от того, что же конкретно вы хотите от микроконтроллера.

Удастся ли с нужной для всех исполняемых программ скоростью обрабатывать информацию - зависит от выбранного мк, от ваших аппетитов и от вашего умения запрограммировать все достаточно экономным образом.

Так что определитесь с самым необходимым минимумом тех функций, которые должны быть реализованы, определитесь, как часто (с какой скоростью, в какие моменты, ...) должны выполняться эти функции и начинайте формулировать свою задачу. Но не в описательном стиле - забудьте об уроках литературы - а в терминах микроконтроллера, в терминах процедурных языков. Что-то вроде

- получить то-то оттуда-то

- сделать то-то с тем-то

- передать то-то туда-то

Не получится это сделать - тогда действительно:

Mastino пишет:

Как говорит один мой знакомый:
Если понятие минимальное, а задачи высоки.. - лучше сменить занятие..:)

 

whoim
Offline
Зарегистрирован: 03.11.2011