Hallo,
Ich programmiere gerade eine Funktion, die mir aus großen Datenfeldern
im Flash Daten auslesen soll.
Wenn ich die Daten innerhalb der main-Schleife auslese funktioniert es
perfekt. Da aber die Aufrufe mehrfach gebraucht werden wollte ich alles
in eine Funktion packen (auch im main.c) und den ausgelesenen Wert mit
dem return rückgeben und da liegt das Problem..
main.c
1 | int main()
|
2 | {
|
3 | while(1)
|
4 | {
|
5 | testvar = pgm_read_word(&(((datapoint_t *)pgm_read_word(&(FAN[1].kf_ptr)[0].kl_ptr))[0].Speed)); //funktioniert
|
6 |
|
7 | testvar1 = get_speed(1, 0, 0); //funktioniert nicht
|
8 | }
|
9 | }
|
10 |
|
11 | int get_speed(int fan_index, int kl_index, int point_index)
|
12 | {
|
13 | return pgm_read_word(&(((datapoint_t *)pgm_read_word(&(FAN[fan_index].kf_ptr)[kl_index].kl_ptr))[point_index].Speed));
|
14 | }
|
Hat jemand eine Idee was da los ist?? Die Funktion liefert nur Stuss
zurück.
Basis ist im Moment ein ATMega8.
Danke schon mal..
mfg Daniel Held