Kann jemand bitte helfen, die Legitimität dieses Codes von Arduino Project [geschlossen] zu überprüfen.C++

Programme in C++. Entwicklerforum
Anonymous
 Kann jemand bitte helfen, die Legitimität dieses Codes von Arduino Project [geschlossen] zu überprüfen.

Post by Anonymous »

Code: Select all

const int clk = 15;
const int rst = 16;

const int d0 = 2;
const int d1 = 3;
const int d2 = 4;
const int d3 = 5;
const int d4 = 6;
const int d5 = 7;
const int d6 = 8;
const int d7 = 9;

int cnt = 0;
int nl = 0;

void setup() {

Serial.begin(9600);
pinMode (clk, OUTPUT);
pinMode (rst, INPUT);
pinMode (d0, INPUT);
pinMode (d1, INPUT);
pinMode (d2, INPUT);
pinMode (d3, INPUT);
pinMode (d4, INPUT);
pinMode (d5, INPUT);
pinMode (d6, INPUT);
pinMode (d7, INPUT);
digitalWrite (clk, LOW);

}

void loop() {

if (digitalRead(rst) == HIGH) {

//4096 = 12bits, 2048 = 11bits, 1024 = 10bits, 512 = 9bits,
< /code>
256 = 8 Bit < /pt>
    if (cnt < 8192) {

cnt++;

int sum = 0;
if (digitalRead(d0) == HIGH) {sum += 1; }
if (digitalRead(d1) == HIGH) {sum += 2; }
if (digitalRead(d2) == HIGH) {sum += 4; }
if (digitalRead(d3) == HIGH) {sum += 8; }
if (digitalRead(d4) == HIGH) {sum += 16; }
if (digitalRead(d5) == HIGH) {sum += 32; }
if (digitalRead(d6) == HIGH) {sum += 64; }
if (digitalRead(d7) == HIGH) {sum += 128; }

if (nl >= 8 ) {
nl = 0;
Serial.println();

}
if (sum < 16 ) {Serial.print ("0");}
Serial.print(sum, HEX);
if (nl < 7 ) {Serial.print(" "); }

nl++;

digitalWrite(clk, HIGH);
delay(1);
digitalWrite(clk, LOW);
delay(1);
}
}
< /code>
} < /p>
Dieser untere Teil ist meine eigene Version, wenn Sie Github und Usagi versioniert kombinieren. Die oberste ist zwar von der USAGI -Videoanforderung. Sowohl kompilieren als auch laden erfolgreich in das Arduino Board. Es ist zwar schwer zu sagen, warum man den ROM -Dump in eine Hex -Bin -Datei ausdrucken könnte, und der andere nicht. Wirkt so, als ob es so ist.  < /P>
const int clk = 15;
const int rst = 16;

int AD0 = 10;
int AD1 = 9;
int AD2 = 8;
int AD3 = 7;
int AD4 = 6;
int AD5 = 5;
int AD6 = 4;
int AD7 = 3;
int AD8 = 2;
int AD9 = 1;
int AD10 = 12;
int AD11 = 11;
int AD12= 0;

const int DO0 = 11;
const int DO1 = 12;
const int DO2 = 13;
const int DO3 = 15;
const int DO4 = 16;
const int DO5 = 17;
const int DO6 = 18;
const int DO7 = 19;

int b0 = 0;
int b1 = 0;
int b2 = 0;
int b3 = 0;
int b4 = 0;
int b5 = 0;
int b6 = 0;
int b7 = 0;
int b8 = 0;
int b9 = 0;
int b10 = 0;
int b11 = 0;
int b12 = 0;

int cnt = 0;
int nl = 0;

void setup() {

Serial.begin(9600);

pinMode (clk, OUTPUT);
pinMode (rst, INPUT);
pinMode(AD0, OUTPUT);       //D9 and Address AD0
pinMode(AD1, OUTPUT);       //D8 and Address AD1
pinMode(AD2, OUTPUT);       //D7 and Address AD2
pinMode(AD3, OUTPUT);       //D6 and Address AD3
pinMode(AD4, OUTPUT);       //D5 and Address AD4
pinMode(AD5, OUTPUT);       //D4 and Address AD5
pinMode(AD6, OUTPUT);       //D3 and Address AD6
pinMode(AD7, OUTPUT);       //D2 and Address AD7
pinMode(AD8, OUTPUT);       //D10 and Address AD8
pinMode(AD9, OUTPUT);       //D11 and Address AD9
pinMode(AD10, OUTPUT);      //D12 and Address AD10
pinMode(AD11, OUTPUT);      //D12 and Address AD10
pinMode(AD12, OUTPUT);      //D13and Address AD10

pinMode(DO0, INPUT);       //D21 and DataOut DO0
pinMode(DO1, INPUT);       //D20 and DataOut DO1
pinMode(DO2, INPUT);       //D19 and DataOut DO2
pinMode(DO3, INPUT);       //D14 and DataOut DO3
pinMode(DO4, INPUT);       //D15 and DataOut DO4
pinMode(DO5, INPUT);       //D16 and DataOut DO5
pinMode(DO6, INPUT);       //D17 and DataOut DO6
pinMode(DO7, INPUT);       //D18 and DataOut DO7
digitalWrite (clk, LOW);

}

void loop() {
digitalWrite(AD0, LOW);
digitalWrite(AD1, LOW);
digitalWrite(AD2, LOW);
digitalWrite(AD3, LOW);
digitalWrite(AD4, LOW);
digitalWrite(AD5, LOW);
digitalWrite(AD6, LOW);
digitalWrite(AD7, LOW);
digitalWrite(AD8, LOW);
digitalWrite(AD9, LOW);
digitalWrite(AD10, LOW);
digitalWrite(AD11, LOW);
digitalWrite(AD12, LOW);

Serial.println();
Serial.println("Press button to begin.");
delay(1000);

//Start count for entire address range
for (int i = 0; i < 512; i++) {
//Get each bit value from address
b0 = bitRead(i, 0);
b1 = bitRead(i, 1);
b2 = bitRead(i, 2);
b3 = bitRead(i, 3);
b4 = bitRead(i, 4);
b5 = bitRead(i, 5);
b6 = bitRead(i, 6);
b7 = bitRead(i, 7);
b8 = bitRead(i, 8);
b9 = bitRead(i, 9);
b10 = bitRead(i, 10);
b11 = bitRead(i, 11);
b12 = bitRead(i, 12);

//Assign bit value to actual address line to ROM
if (b0 == 1) {digitalWrite(AD0, HIGH);} else {digitalWrite(AD0, LOW);}
if (b1 == 1) {digitalWrite(AD1, HIGH);} else {digitalWrite(AD1, LOW);}
if (b2 == 1) {digitalWrite(AD2, HIGH);} else {digitalWrite(AD2, LOW);}
if (b3 == 1) {digitalWrite(AD3, HIGH);} else {digitalWrite(AD3, LOW);}
if (b4 == 1) {digitalWrite(AD4, HIGH);} else {digitalWrite(AD4, LOW);}
if (b5 == 1) {digitalWrite(AD5, HIGH);} else {digitalWrite(AD5, LOW);}
if (b6 == 1) {digitalWrite(AD6, HIGH);} else {digitalWrite(AD6, LOW);}
if (b7 == 1) {digitalWrite(AD7, HIGH);} else {digitalWrite(AD7, LOW);}
if (b8 == 1) {digitalWrite(AD8, HIGH);} else {digitalWrite(AD8, LOW);}
if (b9 == 1) {digitalWrite(AD9, HIGH);} else {digitalWrite(AD9, LOW);}
if (b10 == 1) {digitalWrite(AD10, HIGH);} else {digitalWrite(AD10, LOW);}
if (b11 == 1) {digitalWrite(AD11, HIGH);} else {digitalWrite(AD11, LOW);}
if (b12 == 1) {digitalWrite(AD12, HIGH);} else {digitalWrite(AD12, LOW);}

//Delay to let chip stabilize
delay(10);

if (digitalRead(rst) == HIGH){
if (cnt <  8192) {

cnt++;

//Read contents of ROM
int sum = 0;
if (digitalRead(DO0) == HIGH) {sum += 1;}
if (digitalRead(DO1) == HIGH) {sum += 2;}
if (digitalRead(DO2) == HIGH) {sum += 4;}
if (digitalRead(DO3) == HIGH) {sum += 8;}
if (digitalRead(DO4) == HIGH) {sum += 16;}
if (digitalRead(DO5) == HIGH) {sum += 32;}
if (digitalRead(DO6) == HIGH) {sum += 64;}
if (digitalRead(DO7) == HIGH) {sum += 128;}

//Print data to Serial
if (nl >= 32) {
nl = 0;
Serial.println();
}

if (sum < 16) {Serial.print("0");}
Serial.print(sum, HEX);
if (nl < 32) {Serial.print(" ");}

nl++;

digitalWrite(clk, HIGH);
delay(1);
digitalWrite(clk, LOW);
//Delay to let ROM output stabilize
delay(1);
}
}
}
}
Ich habe die Skriptschleifenfunktion um Adressnadellinien aus Arduino Nano hinweg erweitert und Arduino Nano im Usagi Electric YouTube Channel zum Vergleich vergleich VMLPNFSZFL3DDWA0), als ich dies zum ersten Mal mit Arduino Nano versuchte. die 80er Jahre. Das Dip-ROM von meinem Projekt gehört zu einer Pachinko-Nishijin-Maschine aus den 1980er Jahren wie den Appple TV-Sereies, LH5764-20. Obwohl ich die Adresslinien in der Skizze in der Reihenfolge der tatsächlichen Stifte aus der Schematatdatei des DIP -Schaltungskreises "codierte", habe ich den Arduino -Nano aus dem Fehlvereide- und Spannungsleitungen ausgebrannt. Obwohl ich nicht denke GitHub Verweis auf das Video und meine eigenen im Codebeitrag. Text < /p>
Was ist also der Unterschied im Code aus dem Adressstift und der Reihenfolge, in der die ROM -Dump -Skizze diese Werte einzeln in die Syntaxzeilen aufnehmen soll? Ich meine, wie sollten sie neu angeordnet werden, sodass die Skizze in Arduino IDE sie einzeln in der Reihenfolge aufnimmt, die zu den durch den Dips -Schematik entnommenen Dips konventionell verprügelt oder vertrieben oder verschoben wird. Für Mondmissionen zum Mars. Ich habe die Pin -Adresse falsch gemacht. Ich glaube, deshalb wiederholt die Skriptskizze immer wieder "Geben -10 verfügt über 13 Adressstifte, während Usagis AMD -Chip nur 12 Adressstifte hat. Wenn ich die Ripple -Trägerdecoder auf meinem Chip verwenden, habe ich eine weitere Adresse über seine, und ich habe einen zusätzlichen Decoder verwendet, der insgesamt 4 auf meinem Stirnbrett herstellte. Es gibt Verwirrung darüber, warum Ben Eater von YouTube auf "The Worlds Worst Criap Card" ähnliche Probleme mit seinem NAND und nicht mit dem Gate -Wechselrichter von der Veranda oder der LCD -Linie zum Taktpuls vom Kristalloszillator und den Decodierern stellt. Mein Problem ist es nicht, auf LCD zu drucken Arduino kann einfach nicht richtig tun, um die Hex -Adresse im ROM -Dump zu drucken. Sollte ich den 13. Stift zum Arduino Reset Pin und die Pin -Adresse Null zum Taktstift verleihen, wie in Ben Esern 264 Bit Binärschalter. Um einen besseren Vergleich aus dem Verkaufskatalog von eBay online zu vergleichenden, haben die Chips auf diesen spezialisierten vorgefertigten ROM -Dumpern mehr Stifte, die ein Arduino auf seinem Mikrocontroller. Und verwenden Sie Keramikkappen, um den Strom zu filtern, der im IC-Schema des LH5764-20 angegeben ist, und ich habe eine, wenn ich einen Masse daraus machen kann, aber Usagi benutzte so etwas vor der Kamera. Ich frage mich, wie er seine Taktlinien miteinander verbunden hat, oder hatten wir auch das gleiche Arduino -Board, weil meine verbrannt wurde und das NSA -Internet der Dinge eine gute Hektik ist.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post