You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
73 lines
2.1 KiB
73 lines
2.1 KiB
/* |
|
Arduino Hello-World @ RIOT |
|
Prints 'Hello Arduino!' once on the serial port during startup, toggles the |
|
default LED twice each seconds and echoes incoming characters on the serial |
|
port. |
|
*/ |
|
|
|
// Per convention, RIOT defines a macro that is assigned the pin number of an |
|
// on-board LED. If no LED is available, the pin number defaults to 0. For |
|
// compatibility with the Arduino IDE, we also fall back to pin 0 here, if the |
|
// RIOT macro is not available |
|
#ifndef ARDUINO_LED |
|
#define ARDUINO_LED (0) |
|
#endif |
|
|
|
// For some boards RIOT defines a macro assigning the required baudrate of the |
|
// serial link. If this macro is not set, the default baudrate is set to |
|
// 115200. |
|
#ifdef UART_STDIO_BAUDRATE |
|
#define SERIAL_BAUDRATE UART_STDIO_BAUDRATE |
|
#else |
|
#define SERIAL_BAUDRATE 115200 |
|
#endif |
|
|
|
// Assign the default LED pin |
|
int ledPin = ARDUINO_LED; |
|
|
|
// input buffer for receiving chars on the serial port |
|
int buf[64]; |
|
|
|
// counter that counts the number of received chars |
|
int count = 0; |
|
|
|
void setup(void) |
|
{ |
|
// configure the LED pin to be output |
|
pinMode(ledPin, OUTPUT); |
|
// configure the first serial port to run with the previously defined |
|
// baudrate |
|
Serial.begin(SERIAL_BAUDRATE); |
|
// say hello |
|
Serial.println("Hello Arduino!"); |
|
} |
|
|
|
void loop(void) |
|
{ |
|
// toggle the LED |
|
digitalWrite(ledPin, !digitalRead(ledPin)); |
|
// test if some chars were received |
|
while (Serial.available() > 0) { |
|
// read a single character |
|
int tmp = Serial.read(); |
|
// if we got a line end, we echo the buffer |
|
if (tmp == '\n') { |
|
// start with printing 'ECHO: ' |
|
Serial.write("Echo: "); |
|
// echo the buffer |
|
for (int i = 0; i < count; i++) { |
|
Serial.write(buf[i]); |
|
} |
|
// terminate the string with a newline |
|
Serial.write('\n'); |
|
// reset the count variable |
|
count = 0; |
|
} |
|
// else we just remember the incoming char |
|
else { |
|
buf[count++] = tmp; |
|
} |
|
} |
|
// wait for half a second |
|
delay(500); |
|
}
|
|
|