Gast
#140981
Hi und die nächste Falle (irgendwie gings am anfang auch viel zu gut). Ich versuche grad in meinen speicher reinzuschreiben. Ist ein DS1250 von Maxim / Dallas. So weit so gut aber irgendwie versucht mich das Ding hinters Licht zu führen und ist vorerst auch erfolgreich. Ich schreibe da rein mit folgender Routine: DDRA=0xFF; DDRG=0xFF; adr_reset(); // setzt einen 74HCT4040 zähler zurück DDRC=0xFF; // PORTC-> Datenbus -> ausgang cs_memory=0; oe_memory=1; delay_us(5); we_memory=0; i=0; for (i=1;i<=254;i++) { PORTC=i; delay_us(2); adr_countup(); // toggelt den count pin am 74HC4040 und zählt delay_us(2); // so die Adresse hoch } cs_memory=1; delay_us(5); oe_memory=1; we_memory=0; Dann versuch ich das ganze auszulesen mit der folgenden Routine DDRF=0xFF; adr_reset(); //wieder auf den Speicherbeginn setzen DDRC=0x00; // PORTC-> Datenbus ->Eingang PORTC=0xFF; oe_memory=1; cs_memory=0; delay_us(5); we_memory=1; oe_memory=0; for (i=1;i<=254;++i) { delay_us(1); aus=PINC; PORTF=aus; adr_countup(); delay_ms(250); } cs_memory=1; delay_us(5); we_memory=1; oe_memory=0; Das klappt bei fast allen werten und bei einigen kommt müll raus. Es sind immer die gleichen werte die schiefgehen und es sind definitiv nicht die Speicherzellen. Habe das getestet indem ich einfach bei der Adresse 1000 im Memory angefangen hab zu schreiben und später zu lesen, aber es ist das gleiche Problem. Hat irgendwer ne plausible Erklärung? Tobi *schon den ganzen Tag dran ist und heute eigentlich laut Planung fertig sein wollte*