Прирывания при связи по Ком Порту.
- Войдите на сайт для отправки комментариев
Пнд, 09/09/2013 - 12:18
Есть Шаговик -> Ардуино -> Win Приложение.
В программе указывается сколько шагов сделать, отправляться команда. Адушка выполняет. Все работает.
Задача во время выполнения отправить другую команду, например остановить.
К сожалению Адушка, за новую команду не возьмется пока текущею не выполнит(Я понимаю что Адушка работает последовательно с командами, и не имеет понятия поточности, хотя в нете есть много примеров). Кто подскажет в каком направление копать?
#include <Messenger.h> #include <Stepper.h> Messenger message = Messenger(); #define motorSteps 64 #define motorPin1 2 #define motorPin2 4 #define motorPin3 5 #define motorPin4 3 #define Led1 6 #define Led2 7 #define LedTEST 13 int incomingByte; int steps; int LedOn = 0; Stepper myStepper(motorSteps, motorPin1,motorPin2, motorPin3, motorPin4); void setup() { Serial.begin(9600); message.attach(messageCompletedString); pinMode(LedTEST, OUTPUT); } void messageCompletedString() { if ( message.checkString("f") ) { steps = message.readInt(); myStepper.step(steps); } } if (message.checkString("b")) { steps = message.readInt(); if ( message.checkString("s") ) { steps = message.readInt(); myStepper.step(-steps); } } if (message.checkString("s")) { //myStepper.stop = 1; if (LedOn ==0 ){ digitalWrite(Led1, HIGH); LedOn = 1; } else{ digitalWrite(Led1, LOW); LedOn = 0; } } } // end Void void loop() { while ( Serial.available( ) ) message.process(Serial.read( ) ); }
Команда B - крутим моторчик в перед
Команда F - крутим моторчик в назад
Команда S - Зажигаем светодиод.
Пример задачи при выполнен текущий команды(крутить мотор), зажечь/выключить Диод.
Волшебное слово - AccelStepper.
werxes, а в какой программе вы писали код для Winows?Если не трудно выложите полный код. Я сейчас пишу программу управления соленоидами и датчиками температуры /давления, и возникли проблемы с непрерывным чтением порта. Ищу подсказки в разных примерах!)