Hallo, ich brauche im Rahmen meiner Diplomarbeit einen EEprom um verschiederne Daten von Sensoren zu speichern. Dabei verwende ich einen µC ATmega32U4 und einen EEprom 24AA1026 mit 1MB Speicher. --> Datenblatt: http://docs-europe.electrocomponents.com/webdocs/137d/0900766b8137db20.pdf Beschaltung des EEproms: Pin 1 - Pin 4 wurden auf GND geschalten Pin 5 Datenleitung inkl. 3k9 PullUp Pin 6 Clock inkl. 3k9 PullUp (100kHz) Pin 7 GND Pin 8 Vcc Das schreiben von Bytes sollte grundsätzlich funktionieren, aber kann dies nur bedingt überprüfen, da ich es bis jetzt noch nicht geschafft habe Bytes auszulesen. Wenn ich versuche ein Byte auszulesen kommt immer der Wert 255 zurück, egal welche Word Adresse ich abfrage.. Im Anhang befinden sich die main.c und die EEprom.h, welche ich selbst geschrieben habe. Um die Werte auszugeben habe ich ein LCD verwendet. Vllt findet wer den Fehler bzw. kann mit weiter helfen :d Danke im Vorraus
Florian F. schrieb: > Das schreiben von Bytes sollte grundsätzlich funktionieren, aber kann > dies nur bedingt überprüfen, da ich es bis jetzt noch nicht geschafft > habe Bytes auszulesen. "Sollte" ist bei soetwas sehr vage. Bekommst du vom EEPROM ein Ack auf dem Bus? Wenn 'ja', dann kann man weiter sehen.
Wolfgang schrieb: > Florian F. schrieb: >> Das schreiben von Bytes sollte grundsätzlich funktionieren, aber kann >> dies nur bedingt überprüfen, da ich es bis jetzt noch nicht geschafft >> habe Bytes auszulesen. > > "Sollte" ist bei soetwas sehr vage. > > Bekommst du vom EEPROM ein Ack auf dem Bus? > Wenn 'ja', dann kann man weiter sehen. Ja ich bekomme ein ACK zurück, deshalb bin ich davon ausgegangen, dass die write Funktion funktioniert.
Florian F. schrieb: > Ja ich bekomme ein ACK zurück, deshalb bin ich davon ausgegangen, dass > die write Funktion funktioniert. Woher weißt du das? Ich sehe im Lese- bzw. Schreib-Code keinen einzigen Zugriff auf TWSR. Davon abgesehen, die ganzen |= bei den TWCR-Zugriffen sind Quatsch. So wird z.B. TWSTA in deinem Code nicht wieder zurückgesetzt.
Stefan E. schrieb: > Florian F. schrieb: >> Ja ich bekomme ein ACK zurück, deshalb bin ich davon ausgegangen, dass >> die write Funktion funktioniert. > > Woher weißt du das? Ich sehe im Lese- bzw. Schreib-Code keinen einzigen > Zugriff auf TWSR. > > Davon abgesehen, die ganzen |= bei den TWCR-Zugriffen sind Quatsch. So > wird z.B. TWSTA in deinem Code nicht wieder zurückgesetzt. Danke für deine Hilfe, es ist an den ganzen |= gelegen :D!
Der ganze Code ist auch irrend wie Murks. Denn will niemand benutzen ;). Versuche vernünftige read und write Funktionen zu programmieren. Vorallen unter dem Aspekt wie man solche Speicher organisiert. Sonst sind das nicht die einzigen Probleme die Auftauchen, für ein Stadium der Diplom Arbeit ist der Code schon sehr dürftig ;). Da er die Prinzipien wie erwähnt gar nicht berücksichtigt. Die Struktur ist auch ... naja ...
Marco H. schrieb: > Der ganze Code ist auch irrend wie Murks. Denn will niemand benutzen ;). > > Versuche vernünftige read und write Funktionen zu programmieren. > Vorallen unter dem Aspekt wie man solche Speicher organisiert. > > Sonst sind das nicht die einzigen Probleme die Auftauchen, für ein > Stadium der Diplom Arbeit ist der Code schon sehr dürftig ;). Da er die > Prinzipien wie erwähnt gar nicht berücksichtigt. Ja ich weiß, der Code dient rein für Testzwecke :D
Naja glaube ich nicht da du den unterschied zwischen header Dateien usw. und was der Compiler daraus macht nicht verstanden hast. Auch C nicht ? Du backst dir irgend etwas zusammen und verstehst es nicht. So hat es den Anschein, für ein Bildungsprojekt finde ich das den falschen Ansatz. Kein Wunder das der BER nie aufmacht ... Das dumme ist nur durch herum Probieren kommt man ganz selten zum Ziel. Da muss man sich eben um Literatur bemühen.
Florian F. schrieb: > Ja ich weiß, der Code dient rein für Testzwecke :D Nur für Testzwecke kann man das schneller unter der Arduino-IDE zusammenbauen. Aus den Beispiele zur Wire Lib ist das in wenigen Minuten zurechtgebogen.
und es funktioniert sogar wenn der bootloader wieder per ISP drauf kommt. Da ich vermute das die IDE den Code anders gelinkt hat und nun ist er weg ;)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.