Forum: Mikrocontroller und Digitale Elektronik Optimierung des Lesevorgangs Atmel AT25DF641


von Michael Stapek (Gast)


Lesenswert?

Hallo,

ich habe vor kurzem den Atmel AT25DF641 Speicherbaustein in Betrieb 
genommen. Als Mikrocontroller habe ich ein ARM LPC2486.

Ich habe mir ein kleines Programm geschrieben, um Daten auf den 
Speicherbaustein zu schieben und wieder auszulesen. Jedoch geht das 
Lesen ziemlich langsam.

Ich habe eine Funktion
1
char *memRead(int adresse , int laenge)

die mir ein char array mit dem Inhalt der Speicheradressen zurückgibt.

Um die Daten in das Array zu schreiben nutze ich eine For-Schleife
1
for(i = 0; i < laenge; i++){
2
    SS_DR = 0; 
3
     ASK_FOR_RNE_BIT
4
    result[i] = SS_DR;
5
  }

Mit dieser Schleife kann ich nun jeweils nur ein Bit zur Zeit einlesen.

Meine Frage lautet: Ist es möglich, dass ich mehrere Bytes zugleich 
einlesen kann und somit etwas Zeitaufwand gut mache? Wenn ich z.B. 4 
Bytes zur selben Zeit einlese, spare ich bestimmt etwas Zeit. Hat jemand 
einen Tipp für mich?

Vielen Dank

Michael Stapek

von Michael Stapek (Gast)


Lesenswert?

Hier einmal die ganze Funktion:
1
char *memRead(int adresse , int laenge){
2
3
  int loop = 0;
4
  char *result = NULL;
5
  result = (char *) malloc(size+1);  
6
7
  ENABLE
8
  
9
  WRITE_COMMAND
10
11
  write(adresse);
12
  
13
  DUMMY    
14
15
  for (loop  = 0; loop  < 5; loop ++){
16
    ASK_FOR_RNE_BIT    
17
    DUMMY_R
18
  }
19
  
20
  for(loop  = 0; loop  < size; loop ++){
21
    DUMMY    
22
    ASK_FOR_RNE_BIT
23
    result [loop] = SSDR;
24
  }  
25
26
  DISABLE
27
28
  return result;

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
Noch kein Account? Hier anmelden.