нужна помощь
- Войдите на сайт для отправки комментариев
Втр, 22/10/2013 - 13:50
Здравствуйте!
У меня имеется arduino olimexino 328 и ethernet shield. Написал скетч для управления светодиодом через браузер:
#include <Ethernet.h> #include <SPI.h> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192,168,0, 103); EthernetServer server(80); int led = 2; String readString = String (50); void setup() { Ethernet.begin(mac, ip); pinMode(led, OUTPUT); Serial.begin(9600); } void loop() { EthernetClient client = server.available(); if (client) { while (client.connected()) { if (client.available()) {Serial.println("ON"); char c = client.read(); readString.concat (c); if (c == '\n') { if(readString.indexOf ("PORT_ON")>0) digitalWrite (led, HIGH); if (readString.indexOf ("PORT_OFF")>0) digitalWrite (led, LOW); readString=""; client.println("HTTP/1.1 200 OK"); client.println("Content-Type: text/html"); client.println("Connnection: close"); client.println(); client.println("<head>"); client.println("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">"); client.println("<title>\"ДИОД\"</title>"); client.println("</head>"); client.println("<body>"); client.println("<FORM><INPUT TYPE=\"SUBMIT\" NAME=\"BN\" VALUE =\"PORT_ON\"></FORM>"); client.println("<FORM><INPUT TYPE=\"SUBMIT\" NAME=\"BN\" VALUE =\"PORT_OFF\"></FORM>"); client.println("</body></html>"); delay(1); client.stop(); } } } } }
Выглядит это так:
после продолжительных нажатий на кнопки PORN_ON/PORT_OFF происходит следующее:
и сервер перестает отвечать..работоспособность восстанавливается лишь отключением/включением питания. Подскажите в чем может быть проблема. Спасибо.
Может при продолжительных и частых нажатиях? В результате чего readString переполняется и условие
if
(c ==
'\n'
)
не выполняется и сервер не рвет соединение.Попробуйте увеличить задержку в 46 строке delay(200);
Увеличение задержки не помогает. А в 33 строке readString обнуляется.
А в 33 строке readString обнуляется.
Все равно если часто нажимать происходит тоже самое.
Хотите сказать что с кодом из #4 сообщения тоже виснет и не реагирует на нажатия?
Да. Если часто и быстро нажимать то происходит тоже самое о чем я писал в начале