mirror of
https://github.com/DutchMaker/Apple-1-Mini.git
synced 2025-02-17 00:31:19 +00:00
Output video data to serial
This commit is contained in:
parent
905248ba19
commit
c116cff069
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user