2017-07-14 16:05:02 +00:00
|
|
|
#define DA A0
|
|
|
|
#define RDA A1
|
|
|
|
#define PB0 2
|
2017-07-15 15:41:20 +00:00
|
|
|
#define PB1 3
|
|
|
|
#define PB2 4
|
2017-07-14 16:05:02 +00:00
|
|
|
#define PB3 A5
|
|
|
|
#define PB4 A4
|
|
|
|
#define PB5 A3
|
|
|
|
#define PB6 A2
|
|
|
|
|
2017-07-15 15:41:20 +00:00
|
|
|
uint8_t video_data = 0;
|
|
|
|
uint8_t video_data_pins[] = { PB0, PB1, PB2, PB3, PB4, PB5, PB6 };
|
|
|
|
uint8_t serial_data;
|
2017-07-14 16:05:02 +00:00
|
|
|
|
|
|
|
void setup()
|
|
|
|
{
|
|
|
|
pinMode(DA, INPUT);
|
|
|
|
pinMode(RDA, OUTPUT);
|
|
|
|
pinMode(PB0, INPUT);
|
|
|
|
pinMode(PB1, INPUT);
|
|
|
|
pinMode(PB2, INPUT);
|
|
|
|
pinMode(PB3, INPUT);
|
|
|
|
pinMode(PB4, INPUT);
|
|
|
|
pinMode(PB5, INPUT);
|
|
|
|
pinMode(PB6, INPUT);
|
|
|
|
|
|
|
|
Serial.begin(9600);
|
2017-07-15 15:41:20 +00:00
|
|
|
Serial.println("Arduino ready...");
|
2017-07-14 16:05:02 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void loop()
|
2017-07-15 15:41:20 +00:00
|
|
|
{
|
|
|
|
process_video_data();
|
|
|
|
process_serial_data();
|
|
|
|
}
|
|
|
|
|
|
|
|
void process_video_data()
|
2017-07-14 16:05:02 +00:00
|
|
|
{
|
|
|
|
digitalWrite(RDA, HIGH); // Tell PIA we are ready to receive data
|
2017-07-15 15:41:20 +00:00
|
|
|
delayMicroseconds(20);
|
2017-07-14 16:05:02 +00:00
|
|
|
|
|
|
|
if (digitalRead(DA)) // Is there any data?
|
|
|
|
{
|
2017-07-15 15:41:20 +00:00
|
|
|
video_data = 0;
|
2017-07-14 16:05:02 +00:00
|
|
|
|
2017-07-15 15:41:20 +00:00
|
|
|
for (int i = 0; i < 7; i++) // Yes, get byte data
|
|
|
|
{
|
|
|
|
if (digitalRead(video_data_pins[i]))
|
2017-07-14 16:05:02 +00:00
|
|
|
{
|
2017-07-15 15:41:20 +00:00
|
|
|
video_data |= (1 << i);
|
2017-07-14 16:05:02 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2017-07-15 15:41:20 +00:00
|
|
|
if (video_data == 13)
|
2017-07-14 16:05:02 +00:00
|
|
|
{
|
2017-07-15 15:41:20 +00:00
|
|
|
Serial.println();
|
|
|
|
}
|
|
|
|
else if (video_data > 31)
|
|
|
|
{
|
|
|
|
Serial.print((char)video_data);
|
2017-07-14 16:05:02 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
digitalWrite(RDA, LOW);
|
2017-07-15 15:41:20 +00:00
|
|
|
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);
|
|
|
|
}
|
2017-07-14 16:05:02 +00:00
|
|
|
}
|
|
|
|
}
|