232 lines
6.0 KiB
C++
232 lines
6.0 KiB
C++
int RAM_Addr0 = A0;
|
|
int RAM_Addr1 = A1;
|
|
int RAM_Addr2 = A2;
|
|
int RAM_Addr3 = A3;
|
|
int RAM_Addr4 = A4;
|
|
int RAM_Addr5 = A5;
|
|
int RAM_Addr6 = A6;
|
|
int RAM_Addr7 = A7;
|
|
|
|
int RAM_Data0 = A8;
|
|
int RAM_Data1 = A9;
|
|
int RAM_Data2 = A10;
|
|
int RAM_Data3 = A11;
|
|
int RAM_Data4 = A12;
|
|
int RAM_Data5 = A13;
|
|
int RAM_Data6 = A14;
|
|
int RAM_Data7 = A15;
|
|
|
|
int analogPin_H = 650;
|
|
|
|
int val0 = 0; // Variable, die den gelesenen Wert speichert
|
|
int val1 = 0; // Variable, die den gelesenen Wert speichert
|
|
int val2 = 0; // Variable, die den gelesenen Wert speichert
|
|
int val3 = 0; // Variable, die den gelesenen Wert speichert
|
|
int val4 = 0; // Variable, die den gelesenen Wert speichert
|
|
int val5 = 0; // Variable, die den gelesenen Wert speichert
|
|
int val6 = 0; // Variable, die den gelesenen Wert speichert
|
|
int val7 = 0; // Variable, die den gelesenen Wert speichert
|
|
|
|
void readBus(int bus_size, char debug)
|
|
{
|
|
unsigned char byte = 0;
|
|
|
|
for(int i=0;i <= bus_size;i++)
|
|
{
|
|
switch(i)
|
|
{
|
|
case 0:
|
|
val0 = analogRead(RAM_Data0); // Pin einlesen
|
|
if(debug == 0x01) Serial.println(val0);
|
|
if(val0 > analogPin_H) byte += 0x01;
|
|
break;
|
|
case 1:
|
|
val1 = analogRead(RAM_Data1);// Pin einlesen
|
|
if(debug == 0x01) Serial.println(val1);
|
|
if(val1 > analogPin_H) byte += 0x02;
|
|
break;
|
|
case 2:
|
|
val2 = analogRead(RAM_Data2); // Pin einlesen
|
|
if(debug == 0x01) Serial.println(val2);
|
|
if(val2 > analogPin_H) byte += 0x04;
|
|
break;
|
|
case 3:
|
|
val3 = analogRead(RAM_Data3); // Pin einlesen
|
|
if(debug == 0x01) Serial.println(val3);
|
|
if(val3 > analogPin_H) byte += 0x08;
|
|
break;
|
|
case 4:
|
|
val4 = analogRead(RAM_Data4); // Pin einlesen
|
|
if(debug == 0x01) Serial.println(val3);
|
|
if(val4 > analogPin_H) byte += 0x10;
|
|
break;
|
|
case 5:
|
|
val5 = analogRead(RAM_Data5); // Pin einlesen
|
|
if(debug == 0x01) Serial.println(val3);
|
|
if(val5 > analogPin_H) byte += 0x20;
|
|
break;
|
|
case 6:
|
|
val6 = analogRead(RAM_Data6); // Pin einlesen
|
|
if(debug == 0x01) Serial.println(val3);
|
|
if(val6 > analogPin_H) byte += 0x40;
|
|
break;
|
|
case 7:
|
|
val7 = analogRead(RAM_Data7); // Pin einlesen
|
|
if(debug == 0x01) Serial.println(val3);
|
|
if(val7 > analogPin_H) byte += 0x80;
|
|
break;
|
|
}
|
|
}
|
|
|
|
Serial.print("0x");
|
|
Serial.println(byte, HEX);
|
|
|
|
}
|
|
|
|
void readRAMAddr(int bus_size, char debug)
|
|
{
|
|
unsigned char byte = 0;
|
|
|
|
for(int i=0;i <= bus_size;i++)
|
|
{
|
|
switch(i)
|
|
{
|
|
case 0:
|
|
val0 = analogRead(RAM_Addr0); // Pin einlesen
|
|
if(debug == 0x01) Serial.println(val0);
|
|
if(val0 > analogPin_H) byte += 0x01;
|
|
break;
|
|
case 1:
|
|
val1 = analogRead(RAM_Addr1);// Pin einlesen
|
|
if(debug == 0x01) Serial.println(val1);
|
|
if(val1 > analogPin_H) byte += 0x02;
|
|
break;
|
|
case 2:
|
|
val2 = analogRead(RAM_Addr2); // Pin einlesen
|
|
if(debug == 0x01) Serial.println(val2);
|
|
if(val2 > analogPin_H) byte += 0x04;
|
|
break;
|
|
case 3:
|
|
val3 = analogRead(RAM_Addr3); // Pin einlesen
|
|
if(debug == 0x01) Serial.println(val3);
|
|
if(val3 > analogPin_H) byte += 0x08;
|
|
break;
|
|
case 4:
|
|
val4 = analogRead(RAM_Addr4); // Pin einlesen
|
|
if(debug == 0x01) Serial.println(val3);
|
|
if(val4 > analogPin_H) byte += 0x10;
|
|
break;
|
|
case 5:
|
|
val5 = analogRead(RAM_Addr5); // Pin einlesen
|
|
if(debug == 0x01) Serial.println(val3);
|
|
if(val5 > analogPin_H) byte += 0x20;
|
|
break;
|
|
case 6:
|
|
val6 = analogRead(RAM_Addr6); // Pin einlesen
|
|
if(debug == 0x01) Serial.println(val3);
|
|
if(val6 > analogPin_H) byte += 0x40;
|
|
break;
|
|
case 7:
|
|
val7 = analogRead(RAM_Addr7); // Pin einlesen
|
|
if(debug == 0x01) Serial.println(val3);
|
|
if(val7 > analogPin_H) byte += 0x80;
|
|
break;
|
|
}
|
|
}
|
|
|
|
Serial.print("0x");
|
|
Serial.println(byte, HEX);
|
|
|
|
}
|
|
|
|
|
|
void setup() {
|
|
// put your setup code here, to run once:
|
|
|
|
pinMode(RAM_Addr0, INPUT);
|
|
pinMode(RAM_Addr1, INPUT);
|
|
pinMode(RAM_Addr2, INPUT);
|
|
pinMode(RAM_Addr3, INPUT);
|
|
pinMode(RAM_Addr4, INPUT);
|
|
pinMode(RAM_Addr5, INPUT);
|
|
pinMode(RAM_Addr6, INPUT);
|
|
pinMode(RAM_Addr7, INPUT);
|
|
|
|
pinMode(RAM_Data0, INPUT);
|
|
pinMode(RAM_Data1, INPUT);
|
|
pinMode(RAM_Data2, INPUT);
|
|
pinMode(RAM_Data3, INPUT);
|
|
pinMode(RAM_Data4, INPUT);
|
|
pinMode(RAM_Data5, INPUT);
|
|
pinMode(RAM_Data6, INPUT);
|
|
pinMode(RAM_Data7, INPUT);
|
|
|
|
Serial.begin(9600);
|
|
|
|
}
|
|
|
|
void loop() {
|
|
|
|
//Serial.println("Starte Programm:");
|
|
delay(1000);
|
|
|
|
Serial.print("Lese: ");
|
|
readBus(8, 0x00);
|
|
Serial.print("an Adresse: ");
|
|
readRAMAddr(8,0x00);
|
|
Serial.println();
|
|
|
|
if (Serial.available() > 0) {
|
|
// Lies das eingehende Byte:
|
|
//SerialIncoming = Serial.read();
|
|
|
|
String buffer = Serial.readString();
|
|
|
|
// Ausgeben:
|
|
Serial.print("I received: ");
|
|
Serial.println(buffer);
|
|
|
|
|
|
|
|
if(buffer.compareTo("setdata\n") == 0)
|
|
{
|
|
Serial.println("Schreibe 0xFF");
|
|
|
|
pinMode(RAM_Data0, OUTPUT);
|
|
digitalWrite(RAM_Data0, HIGH);
|
|
pinMode(RAM_Data1, OUTPUT);
|
|
digitalWrite(RAM_Data1, HIGH);
|
|
pinMode(RAM_Data2, OUTPUT);
|
|
digitalWrite(RAM_Data2, HIGH);
|
|
pinMode(RAM_Data3, OUTPUT);
|
|
digitalWrite(RAM_Data3, HIGH);
|
|
pinMode(RAM_Data4, OUTPUT);
|
|
digitalWrite(RAM_Data4, HIGH);
|
|
pinMode(RAM_Data5, OUTPUT);
|
|
digitalWrite(RAM_Data5, HIGH);
|
|
pinMode(RAM_Data6, OUTPUT);
|
|
digitalWrite(RAM_Data6, HIGH);
|
|
pinMode(RAM_Data7, OUTPUT);
|
|
digitalWrite(RAM_Data7, HIGH);
|
|
|
|
Serial.println("Warte 4 Sekunden");
|
|
delay(4000);
|
|
|
|
pinMode(RAM_Data0, INPUT);
|
|
pinMode(RAM_Data1, INPUT);
|
|
pinMode(RAM_Data2, INPUT);
|
|
pinMode(RAM_Data3, INPUT);
|
|
pinMode(RAM_Data4, INPUT);
|
|
pinMode(RAM_Data5, INPUT);
|
|
pinMode(RAM_Data6, INPUT);
|
|
pinMode(RAM_Data7, INPUT);
|
|
|
|
}
|
|
}
|
|
|
|
//Serial.println(analogRead(RAM_Data0));
|
|
// put your main code here, to run repeatedly:
|
|
|
|
|
|
}
|