Output video data to serial

This commit is contained in:
Ruud van Falier 2017-07-15 17:41:20 +02:00
parent 905248ba19
commit c116cff069
1 changed files with 42 additions and 21 deletions

View File

@ -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);
}
}
}