FOR Schleife beschleunigen? Kategorie: Programmierung (von Detlef Bäthke - 13.04.2007 11:01) | ||
| ||
for i=startaddr ... startaddr+len-1 { if (i % 32)==0 and i { // Code entfernt } eeout(8,data[i]); // Assembler Funktion } Zwischen den 8 Clock-Pulsen liegt immer eine Pause von ca. 700us. Es gibt keine weiteren Threads. Was ist für diese Zeit verantwortlich? Wie kann man diese Pause verringern? Als �bergangslösung habe ich die Schleifendurchläufe reduziert. i = startaddr; while (i <= (endaddr - 31)) { // Code enfernt eeoutarray (data[i], 32); // Assembler Funktion if (i < 0x7FE0) { i = i + 32; } else { i = 0x7FFF; } } Bei den Eeprom 95256 (32768 Bytes) verkürzt sich dadurch die Programmierzeit von 40s auf 9s. Gru� Detlef | ||
Antwort schreiben Antworten: Re: FOR Schleife beschleunigen? (von André H. - 17.04.2007 1:00) Re: FOR Schleife beschleunigen? (von Detlef Bäthke - 20.04.2007 9:28) |