mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Array Problem


Autor: Phasemän (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich verwende eine AtMega16 programmiere mit WinAVR.

ich denke das ich ein Problem mit dem Array habe aber schaut mal selbst
darüber.

unsigned long speicherblock = 10;
unsigned char write_ok = 0;
unsigned char wert[512];
wert[0] = 0;
wert[1] = 0;
int einer = 0; // Ändert sich im Programmverlauf
int zehner = 0; // Ändert sich im Programmverlauf

                if ( !(PIND & (1<<1)) ) {
    wert[0] = abt;
    wert[1] = xxy;
    mmc_write_sector(speicherblock, wert);
    }

    if ( !(PIND & (1<<2)) ) {
    mmc_read_sector(speicherblock, wert);
    abt = wert[0];
    xxy = wert[1];
                {


Leider werden die werte nicht wie ich es vorhatte auf die MMC abgelegt
oder ausgelesen, kann mir jemand sagen warum?

Vielen Dank

Autor: Michael Wilhelm (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du mußt sagen, welcher wert gespeichert oder gelesen werden soll. Z.B
mmc_read_sector(speicherblock, wert[17]);

oder:

for(i=0;i<512;i++)
{
  mmc_read_sector(speicherblock, wert[i]);
}

MW

Autor: Rufus T. Firefly (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michael W.:
Liest nicht mmc_read_sector einen vollständigen Sektor in den Speicher
ein?

@Phasemän:
Was sind abt und xxy? Wozu sind die einer und zehner da?

Mal mit 'nem Debugger den Inhalt des Arrays wert angesehen?
Oder mal als Hexdump auf eine serielle Schnittstelle ausgegeben?

Autor: Phasemän (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Stimmt Rufus hat recht mmc_read_sector liest einen follständigen sector
ein.

mmc_read_sector(speicherblock, wert[17]);
dürfte dann nicht funktionieren habe ich aber auch versucht dann
beschwärt sich aber der compiler sofort!

Sorry mein Fehler abt ist einer und xxy ist zehner hab die falschen
kopiert, also

int abt = 0; // Ändert sich im Programmverlauf
int xxy = 0; // Ändert sich im Programmverlauf

<<Mal mit 'nem Debugger den Inhalt des Arrays wert angesehen?
<<Oder mal als Hexdump auf eine serielle Schnittstelle ausgegeben?

Sorry nein, bin anfänger damit komm ich noch gar nich klar, habe aber
festgestellt das es an der speicherung liegt, lade ich denn code ohne
die mmc_read_sector / mmc_write_sector funktioniert die ausgabe. Aber
ich brauch ja die speicherrung

Autor: Phasemän (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

würde dann der Code so funktionieren oder hab ich da noch nen fehler
drin? Wie gesagt die werte von abt und xxy werden koreckt an wert[0]
und wert[1] übergeben, fehler ist irgendwo bei der speicherrung.

Worauf ich auch noch nicht wirklich eine Antwort gefunden habe ist wie
die Karte nun formatiert werden muss, Fat16 nutze ich ja nicht.

unsigned long speicherblock = 10;
unsigned char write_ok = 0;
unsigned char wert[512];
wert[0] = 0;
wert[1] = 0;
int abt = 0; // Ändert sich im Programmverlauf
int xxy = 0; // Ändert sich im Programmverlauf

                if ( !(PIND & (1<<1)) ) {
    wert[0] = abt;
    wert[1] = xxy;
    mmc_write_sector(speicherblock, wert);
    }

    if ( !(PIND & (1<<2)) ) {
    mmc_read_sector(speicherblock, wert);
    abt = wert[0];
    xxy = wert[1];
                {

Vielen Dank

Autor: T.Stütz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da du ein problem mit den routinen mmc_read_sector/mmc_write_sector hast
wäre es schön diese mal zu sehen (meine Glaskugel ist im Urlaub)

Was genau liest du aus ?

Schon mal versucht einen anderen Sektor zu beschreiben (eventuell ist
die MMC auch noch schreibgeschützt) ?

Gruss

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.