#include //abgewandelt von EPROM5.ino #define LEDPin 13 word EPROMSize=511; #define addr_A00_pin 40 #define addr_A01_pin 41 #define addr_A02_pin 42 #define addr_A03_pin 43 #define addr_A04_pin 44 #define addr_A05_pin 45 #define addr_A06_pin 46 #define addr_A07_pin 47 #define addr_A08_pin 25 #define data_D0_pin 39 #define data_D1_pin 38 #define data_D2_pin 37 #define data_D3_pin 35 #define data_D4_pin 34 #define data_D5_pin 33 #define data_D6_pin 32 #define data_D7_pin 31 //#define GND_pin 36, direct digital GND, 36 wäre über shield //#define VCC_pin 24 direct digital +5V #define CE1_pin 28 //#define PRM_pin 30 no prg #define CS_pin 27 #define CE2_pin 26 //#define VDD_pin 29 direct +5V void SetChip4Read() { //digitalWrite(VCC_pin, HIGH); direct digitalWrite(CS_pin, LOW); //digitalWrite(PRM_pin, LOW); NC //digitalWrite(VSS_pin, LOW); direct digitalWrite(CE1_pin, HIGH); digitalWrite(CE2_pin, LOW); } void SetAddressPins(byte HighAddress, byte LowAddress) { digitalWrite(addr_A00_pin, (LowAddress & 0b00000001)); digitalWrite(addr_A01_pin, (LowAddress & 0b00000010)); digitalWrite(addr_A02_pin, (LowAddress & 0b00000100)); digitalWrite(addr_A03_pin, (LowAddress & 0b00001000)); digitalWrite(addr_A04_pin, (LowAddress & 0b00010000)); digitalWrite(addr_A05_pin, (LowAddress & 0b00100000)); digitalWrite(addr_A06_pin, (LowAddress & 0b01000000)); digitalWrite(addr_A07_pin, (LowAddress & 0b10000000)); digitalWrite(addr_A08_pin, (HighAddress & 0b00000001)); //digitalWrite(CE1_pin, LOW); vermutl erst nach OUTPUT ? } void SetPinModes() { pinMode(addr_A00_pin, OUTPUT); pinMode(addr_A01_pin, OUTPUT); pinMode(addr_A02_pin, OUTPUT); pinMode(addr_A03_pin, OUTPUT); pinMode(addr_A04_pin, OUTPUT); pinMode(addr_A05_pin, OUTPUT); pinMode(addr_A06_pin, OUTPUT); pinMode(addr_A07_pin, OUTPUT); pinMode(CS_pin, OUTPUT); pinMode(CE1_pin, OUTPUT); pinMode(CE2_pin, OUTPUT); digitalWrite(CE1_pin, LOW); pinMode(data_D0_pin, INPUT); pinMode(data_D1_pin, INPUT); pinMode(data_D2_pin, INPUT); pinMode(data_D3_pin, INPUT); pinMode(data_D4_pin, INPUT); pinMode(data_D5_pin, INPUT); pinMode(data_D6_pin, INPUT); pinMode(data_D7_pin, INPUT); pinMode(LEDPin, OUTPUT); } byte ReadDataValue() { byte temp = 0; //delay(1); if (digitalRead(data_D0_pin) == HIGH) { temp = (temp | 0b00000001); } if (digitalRead(data_D1_pin) == HIGH) { temp = (temp | 0b00000010); } if (digitalRead(data_D2_pin) == HIGH) { temp = (temp | 0b00000100); } if (digitalRead(data_D3_pin) == HIGH) { temp = (temp | 0b00001000); } if (digitalRead(data_D4_pin) == HIGH) { temp = (temp | 0b00010000); } if (digitalRead(data_D5_pin) == HIGH) { temp = (temp | 0b00100000); } if (digitalRead(data_D6_pin) == HIGH) { temp = (temp | 0b01000000); } if (digitalRead(data_D7_pin) == HIGH) { temp = (temp | 0b10000000); } return temp; } void BinaryStrZeroPad(int Number,char ZeroPadding){ signed char i=ZeroPadding; while(i>=0){ if((Number & (1< 0) Serial.write('1'); else Serial.write('0'); --i; } } void setup() { Serial.begin(9600); // war 2000000 Serial.write("DUMP start"); Serial.write("\n\r"); SetPinModes(); // Setup pinmodes depending on chip digitalWrite(LEDPin, HIGH); SetChip4Read(); // Setup chip select, output enable pins etc for reading //digitalWrite(VCC_pin, HIGH); direct angeschlossen int MaxHighAddress = (EPROMSize)/256; int MaxLowAddress = 256; byte dataValue = 0; for(int i = 0; i <= MaxHighAddress; i++) { for(int j = 0; j < MaxLowAddress/8; j++) { // Serial.print(256*i+j*8, OCT); // Serial.print((256*i)+(j*8), HEX); // Serial.print("\t"); for(int k = 0; k < 8; k++) { SetAddressPins(byte(i), byte(j*8+k)); dataValue = ReadDataValue(); digitalWrite(LEDPin, LOW); Serial.print(dataValue, HEX); Serial.print("\t"); } Serial.print("\n"); } } } void loop (){}