Moin! Ich hab hier ein kleines Problem, auf Daten im PROGMEM zuzugreifen.
Einmal habe ich ein 2-Dimensionales Array:
Darauf greife ich später zu :Code:signed int positionslowres[6][10] PROGMEM = { {3,75,0,120,240,0,0,0,0,0}, {6,45,0,60,120,180,240,300,0,0}, {8,15,0,45,90,135,180,225,270,315}, {8,-15,0,45,90,135,180,225,270,315}, {6,-45,0,60,120,180,240,300,0,0}, {3,-75,0,120,240,0,0,0,0,0} };
Code:int i,j,k; int xw,yw; ...... k=pgm_read_word(&(positionslowres[i][0])); yw = pgm_read_word(&(positionslowres[i][1]));
Das klappt alles wunderbar.
Jetzt hab ich noch ein 1-Dimensionales Array :
Code:signed int poshelptable[91] PROGMEM = { 128, 127, 127, 127, 127, 127, 127, 127, 126, 126, 126, 125, 125, 124, 124, 123, 123, 122, 121, 121, 120, 119, 118, 117, 116, 116, 115, 114, 113, 111, 110, 109, 108, 107, 106, 104, 103, 102, 100, 99, 98, 96, 95, 93, 92, 90, 88, 87, 85, 83, 82, 80, 78, 77, 75, 73, 71, 69, 67, 65, 64, 62, 60, 58, 56, 54, 52, 50, 47, 45, 43, 41, 39, 37, 35, 33, 30, 28, 26, 24, 22, 20, 17, 15, 13, 11, 8, 6, 4, 2, 0 };
Zugriff:
Und hier kommt ein warning vom Compiler, außerdem ist facor immer -1....Code:int factor; ...... factor = eeprom_read_word(&(poshelptable[1]));
zuerst hatte ichCode:../panohead_mega8.c:375: warning: pointer targets in passing argument 1 of 'eeprom_read_word' differ in signednessmeiner Mei´nung nach falsch (fehlende Klammern), aber ich kapier nicht, wieso das nciht geht.Code:factor = eeprom_read_word(&poshelptable[1]);
auch factor als signed int, oder das Array nur als int zu deklarieren ändert nix. Kann mir jemand sagen, wo mein Denkfehler liegt???
Danke schonmal !!







Zitieren

Lesezeichen