Comments 2
Можно ведь экономя ценное место на плате
int ledPin = 13;
int readline(int readch, char *buffer, int len)
{
static int pos = 0;
int rpos;
if (readch > 0) {
switch (readch) {
case '\n': // Ignore new-lines
break;
case '\r': // Return on CR
rpos = pos;
pos = 0; // Reset position index ready for next time
return rpos;
default:
if (pos < len-1) {
buffer[pos++] = readch;
buffer[pos] = 0;
}
}
}
// No end of line has been found, so return -1.
return -1;
}
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop()
{
static char buffer[80];
if (readline(Serial.read(), buffer, 80) > 0) {
if (strcmp(buffer, "ledon") == 0) {
digitalWrite(ledPin, HIGH);
Serial.println("13 pin LED is switched ON.");
} else if (strcmp(buffer, "ledoff") == 0) {
digitalWrite(ledPin, LOW);
Serial.println("13 pin LED is switched OFF.");
} else if (strcmp(buffer, "help") == 0) {
Serial.println("ledon - switch on 13 pin LED.");
Serial.println("ledoff - switch off 13 pin LED.");
}
}
}
0
ну, я считаю, что ради удобства можно пожертвовать свободным местом, если, конечно, задача позволяет.
Ради интереса скомпилировал ваш скетч для Arduino Leonardo:
Мой вариант с аналогичным функционалом (подрезал статические буферы до 80ти байт и исключил сообщения для команды help):
у меня, конечно, прошивка побольше, но место еще есть
Ради интереса скомпилировал ваш скетч для Arduino Leonardo:
Скетч использует 4 456 байт (15%) памяти устройства. Всего доступно 28 672 байт
Мой вариант с аналогичным функционалом (подрезал статические буферы до 80ти байт и исключил сообщения для команды help):
Скетч использует 7 028 байт (24%) памяти устройства. Всего доступно 28 672 байт.
у меня, конечно, прошивка побольше, но место еще есть
0
Sign up to leave a comment.
Консолька в роботе на Ардуине