From c116cff06920e366f3fc5ebd80e0a4e9579f1e57 Mon Sep 17 00:00:00 2001 From: Ruud van Falier Date: Sat, 15 Jul 2017 17:41:20 +0200 Subject: [PATCH] Output video data to serial --- code/AVR/SerialTest/SerialTest.ino | 63 ++++++++++++++++++++---------- 1 file changed, 42 insertions(+), 21 deletions(-) diff --git a/code/AVR/SerialTest/SerialTest.ino b/code/AVR/SerialTest/SerialTest.ino index 9443ebd..65e14b5 100644 --- a/code/AVR/SerialTest/SerialTest.ino +++ b/code/AVR/SerialTest/SerialTest.ino @@ -1,15 +1,16 @@ #define DA A0 #define RDA A1 #define PB0 2 -#define PB1 A7 -#define PB2 A6 +#define PB1 3 +#define PB2 4 #define PB3 A5 #define PB4 A4 #define PB5 A3 #define PB6 A2 -byte data = 0; -byte data_pins[] = { PB0, PB1, PB2, PB3, PB4, PB5, PB6 }; +uint8_t video_data = 0; +uint8_t video_data_pins[] = { PB0, PB1, PB2, PB3, PB4, PB5, PB6 }; +uint8_t serial_data; void setup() { @@ -24,39 +25,59 @@ void setup() pinMode(PB6, INPUT); Serial.begin(9600); + Serial.println("Arduino ready..."); } void loop() +{ + process_video_data(); + process_serial_data(); +} + +void process_video_data() { digitalWrite(RDA, HIGH); // Tell PIA we are ready to receive data + delayMicroseconds(20); if (digitalRead(DA)) // Is there any data? { - data = 0; + video_data = 0; - for (byte i = 0; i < 7; i++) // Yes, get byte data - { - if (digitalRead(data_pins[i])) + for (int i = 0; i < 7; i++) // Yes, get byte data + { + if (digitalRead(video_data_pins[i])) { - data |= (1 << i); + video_data |= (1 << i); } } - // Output received data to serial terminal. - Serial.print("Received: "); - Serial.print(data); - Serial.print("\t"); - - - for (int i = 7; i >= 0; i--) + if (video_data == 13) { - Serial.print(digitalRead(data_pins[i])); + Serial.println(); + } + else if (video_data > 31) + { + Serial.print((char)video_data); } - Serial.print("\t"); - Serial.println((char)data); - digitalWrite(RDA, LOW); - delay(12); + delayMicroseconds(20); + } +} + +void process_serial_data() +{ + if (Serial.available() > 0) + { + serial_data = Serial.read(); + + if (serial_data == 13) + { + Serial.println(); + } + else + { + Serial.print((char)serial_data); + } } } \ No newline at end of file