// ---------------------------------- // EPROM auslesen // von Wastl (hartundweichware) uint16_t addressCounter = 0; uint8_t byte_read = 0; uint8_t pin39_CS, pin40_CE2, pin41_CE1; char prbuff[64]; #define DATA_IN_PORT PINL void setup() { DDRA = B11111111; // A0-A7 1= output DDRL = B00000000; // Q0-Q7 DDRC = B00000001; // A8 pinMode(LED_BUILTIN, OUTPUT); // --> hier einmal korrekt zuweisen <-- pin39_CS = 39; // CS pin41_CE1 = 41; // CE1 pin40_CE2 = 40; // CE2 pinMode(pin41_CE1, OUTPUT); // CE1 pinMode(pin40_CE2, OUTPUT); // CE2 pinMode(pin39_CS, OUTPUT); // CS digitalWrite(pin40_CE2, HIGH); digitalWrite(pin41_CE1, HIGH); digitalWrite(pin39_CS, HIGH); Serial.begin(9600); Serial.write("\r\n\r\n"); Serial.write("program start / setup ...\r\n"); } /* --- setup() --- */ void loop() { Serial.write("entering loop ...\r\n"); addressCounter = 0; while (addressCounter < 512) { PORTC = (uint8_t) ( (addressCounter & 0xFF00) >> 8 ); PORTA = (uint8_t) ( (addressCounter & 0x00FF) ); digitalWrite(pin40_CE2, LOW); delayMicroseconds(1); digitalWrite(pin41_CE1, LOW); delayMicroseconds(1); digitalWrite(pin39_CS, LOW); delayMicroseconds(1); byte_read = DATA_IN_PORT; // heisst: "Byte gelesen" digitalWrite(pin41_CE1, HIGH); sprintf (prbuff, "addr 0x%04X: val 0x%02X \r\n", addressCounter, byte_read); uint16_t len = strlen (prbuff); Serial.write(prbuff, len); addressCounter++; delay (333); } /* --- while (addressCounter < 512) --- */ } /* --- loop() --- */ // Ende Sketch EPROM auslesen // ----------------------------------