Проблема с приёмом данных
- Войдите на сайт для отправки комментариев
Ср, 02/01/2019 - 21:41
Народ, такая проблема: делаю проэкт, пока пишу программу по частям, вот пишу код, отвечающий за то чтобы на индикатор выводились числа (1-10), каждую секунду, и если человек нажа кнопку в данном случае "1" в СОМ-порте, число сохранилось и вывелось на индикатор (опять же в данном случае написалось в сом). Но проблема в том что прием данных идёт миллисекунды и не успеешь ввести число( делэй не помагает, а вешает систему). Попытался своеобразно решить проблему(как вы поняли не получилось).
помогите!!!
int x; void setup() { Serial.begin(9600); lol: for( x = 1; x < 11 ; x++){ Serial.println(x); for(int i = 0; i < 900; i++){ int c = Serial.read() - '0'; if(c == 1){continue;}} if(x == 10){ goto lol;} }} void loop() { Serial.println(x); }
Можно ли как-то сделать что-бы действие длилось определёное время?
Я понимаю, что для бородатых ардуинщиков это выглядит тупо, но просьба простить и помочь
Я понимаю, что для бородатых ардуинщиков это выглядит тупо, но просьба простить и помочь
Минимум, двумя разным способами:
1. Блокирующий:
- включили действие,
- подождали (delay()),
- выключили действие.
2. Неблокирующий:
Вне цикла:
- включили действие,
- запомнили время,
Внутри цикла:
- проверили, что прошло больше требуемого итнтервала:
- если "да" - выключили действие,
Спасибо
Прочитайте внимательно http://arduino.ru/Reference/Serial/Available
Подумайте, когда можно получить валидное значение с помощью Serial.read();