Array auslesen.

Gast #2451927
Lesenswert?
• ▲
▼
Hallo!
Ich habe aus dem LED-Fading Artikel folgendes Array:
1
uint16_t pwmtable_8D[32]  PROGMEM = {0, 1, 2, 2, 2, 3, 3, 4, 5, 6, 7, 8, 10, 11,
2
                                    13, 16, 19, 23, 27, 32, 38, 45, 54, 64, 76,
3
                                    91, 108, 128, 152, 181, 215, 255};


Mit folgendem Funktionsaufruf werden die Arrayinhalte auf die PWM 
gepackt:
1
 OCR1A = pgm_read_word(pwmtable_8D+tmp);

Bedeutet es dass tmp für die auszulesene Stelle im Array steht?

Also z.B
1
 OCR1A = pgm_read_word(pwmtable_8D+31);

beudetet dass das Register OCR1A auf 255 gesetzt wird?

Gruss

Bernd
#2451955
Lesenswert?
• ▲
▼
Sieht genau so aus. PROGMEM bestimmt nur, wo es abgelegt wird, ansonsten 
funktioniert das Array so wie immer (außer, dass die Daten hier nicht 
ohne den Umweg über pgm_read_word gelesen werden können).

Noch angemerkt: Wenn man in C eine Zahl auf einen Pointer addiert, wird 
der Pointer um Zahl*(sizeof *Pointer) weitergestellt. Deshalb ist 
&array[x] identisch zu array+x, unabhängig von der Größe des Datentyps 
im Array.

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