PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Probleme SD karte lesen



carlos_soost
26.01.2007, 12:14
Hallo,
ich habe ein Problem bei der Ansteuerung einer SD Karte. Initialisierung funktioniert, dass lesen und schreiben angeblich auch ( wenn ich nach den return gehe bekomme ich immer 0 ). Aber wenn ich den eingelesenen Block anzeigen lasse dann bekomme ich nur 0xff, was wohl bedeutet das er das falsche liest. kann meinen fehler nicht entdecken. Könnte mal bitte einer über den code gucken ob er einen fehler entdeckt??

carlos_soost
27.01.2007, 12:03
Hab den Fehler selber gefunden :-)

Travolds
29.01.2007, 09:51
hi,

als erste anmerkung zum code: funktionen sollten in .h dateien nur deklariert werden. ausprogrammiert dann in .c dateien ;)

als zweites wäre es nett, wenn du uns noch mitteilen würdest wie du das problem behoben hast.

lg

carlos_soost
29.01.2007, 15:08
ich versuche meinen hauptprogrammteil so übersichtlich wie möglich zu halten. deshalb packe ich soviel wie geht in die headerdatei...

ich hab statt eines arrays als parameter einen pointer genommen.
und, was wahrscheinlich ausschlaggebend war, die spi frequenz runtergesetzt. beim lesen auf 1/64 und beim schreiben auf 1/128.



mfg
matze

robby-fant
29.01.2007, 21:33
stell mal den gesamten code hier rein, meine karte funktioniert auch noch nicht.

mfg

Travolds
30.01.2007, 08:09
ich versuche meinen hauptprogrammteil so übersichtlich wie möglich zu halten. deshalb packe ich soviel wie geht in die headerdatei...

du kannst ja deinen hauptprogrammteil trotzdem in einem eigenen .c-file (zb: main,c) haben und deine sd-karten-routinen auch in einem eigenen .c-file (zb: sd.c).
die funktionsdefinitionen ins .h-file (zb: sd.h) und das dann im main.c includieren. dem linker mittels makefile noch sagen das du das c-file brauchst und passt - nur als anregung..

carlos_soost
30.01.2007, 10:42
@robby-fant

hier die c datei. und du brauchst auch die displayfunktionen. du musst dann im c file nur noch bei den include anweisungen aus vw_sdkarte.h
sdkarte.h machen.

carlos_soost
02.02.2007, 11:58
@travolds...

ich nutze avr studio...wie kann ich denn dort mehrere c dateien nutzen??
wollte nicht extra mit makefile anfangen...

chientech
03.02.2007, 13:06
Hi, in AVR studio musst du weitere .c Dateien nicht includen das geht von selbst. Soll heißen:
Einfach im Linken Fenster auf Source Files rechtsklicken und Create New Source File auswahlen, Namen mit .c bzw .h eingeben schon fertig.

Ich hätte auch interesse an deinem Code, genauergesagt an deinem ganzen Projekt. Ich möchte ebenfalls eine SD-Karte als Speichererweiterung für meinen mega32 nutzen. SD-Kartenhalter gibts bei Reichelt hab aber keinen Schimmer wie ich diesen am günstigsten an meinen AVR anschließe noch wie ich damit Daten lesen bzw. schreiben kann.

gruß ch

carlos_soost
03.02.2007, 20:35
damke für den hinweis.
werd das mal die nächsten tage probieren und hier online stellen.
zur pinbelegung: es ist am günstigsten wenn du miso, mosi und clock an die hardware spi schnittstelle des controllers legst. die pins findest du im datenblatt.

den rest dann morgen oder übermorgen

carlos_soost
04.02.2007, 12:58
hab das versucht mit dem c file..aber bekomme immer die fehlermeldung das er keine objektdatei erstellen kann. müssen da noch andere einstellungen getroffen werden???

Travolds
05.02.2007, 16:21
hi,

ich benutze leider kein avr-studio kann dir also zu deiner speziellen frage keine antwort geben. meistens helfen aber die genauen fehlermeldungenm, sprich copy und hier rein pasten, weiter.

ich würde aber mal vermuten, dass das avr studio selber ein makefile anlegt zum kompilieren..