ich hab das vor einiger zeit folgendermaßen realisiert:
portB hab ich als adressbus verwendet. um nur einen port zu verwenden
hab ich die adressen in einem latch 8bit latch zwischengespeichert
(-->16 adress-bits).
als datenbus hab ich dann port c verwendet.
hier noch der code:
void write_eeprom(int adresse, char data){
outp(adresse,PORTB);
cbi(PORTD,7); // Latch=0 --> Daten sind im Latch
zwischengespeichert
adresse=adresse>>8;
outp(adresse,PORTB); // Adresse liegt nun am EEPROM an
// um Daten zu schreiben muss WE auf 0 gezogen werden
outp(0xff,DDRC); // Daten schreiben
outp(data,PORTC); // Daten liegen am Port an
wait(500);
cbi(PORTD,6); // W=0
wait(500);
sbi(PORTD,6); // W=1
wait(500);
sbi(PORTD,7);
wait(500);
}
char read_eeprom(int adresse){
char data;
outp(adresse,PORTB);
cbi(PORTD,7); // Latch=0 --> Daten sind im Latch
zwischengespeichert
adresse=adresse>>8;
outp(adresse,PORTB); // Adresse liegt nun am EEPROM an
// um Daten zu lesen muss OE auf 0 gezogen werden
outp(0xff,PORTA);
outp(0,DDRC); // Daten lesen
wait(100);
cbi(PORTD,5); // G=0
wait(100);
data=inp(PINC);
sbi(PORTD,5); // G=1
sbi(PORTD,7);
outp(0xff,DDRC);
return data;
}
ich hoffe, dass ich dir weiterhelfen konnte
florian