Optimierung des Lesevorgangs Atmel AT25DF641

Gast #2958328
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
Gast #2958558
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;

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren