Go Down

Topic: PROGMEM 4Byte Werte zurücklesen -Fehler beim kompalieren (Read 390 times) previous topic - next topic

Snoops

Hallo zusammen,

kann mir jemand einen Tipp geben, warum das zurücklesen eines Wertes aus dem Array via PROGMEM beim kompalieren
nicht funktioniert und mir den Fehler 'anArray' was not declared in this scope zurückmeldet?

Code: [Select]

#include <avr/pgmspace.h>

void setup() {
  Serial.begin(115200); // Serielle Kommunkation mit 115200 bps initialisieren

  const long anArray[] PROGMEM = { 6854760,3427380,2284920,1713690,1370952,1142460,979251,856845,761640,685476,623160,571230,527289,489626,456984,428423,403221,380820,360777
        ,342738,326417,311580,298033,285615,274190,263645,253880,244813,236371,228492,221121,214211,207720,201611,195850
        ,190410,185264,180388,175763,171369,167189,163209,159413,155790,152328,149017,145846,142808,139893,137095,134407
        ,131822,129335,126940,124632,122406,120259,118186,116182,114246,112373,110561,108806,107106,105458,103860,102310
        ,100805,99344,97925,96546,95205,93901,92632,91397,90194,89023,87882,86769,85685,84627,83595,82587,81604,80644
        ,79707,78790,77895,77020,76164,75327,74508,73707,72923,72155,71404,70668,69947,69240,68548,67869,67204,66551
        ,65911,65283,64668,64063,63470,62888,62316,61755,61203,60662,60129,59607,59093,58588,58091,57603,57123,56651
        ,56187,55730,55280,54838,54403,53974,53553,53138,52729,52326,51930,51540,51155,50776,50403,50035,49672,49315
        ,48963,48615,48273,47935,47603,47274,46950,46631,46316,46005,45698,45396,45097,44802,44511,44224,43941,43661
        ,43385,43112,42842,42576,42313,42054,41797,41544,41294,41046,40802,40561,40322,40086,39853,39623,39395,39170
        ,38948,38727,38510,38295,38082,37872,37664,37458,37254,37053,36854,36656,36461,36269,36078,35889,35702,35517
        ,35334,35153,34973,34796,34620,34446,34274,34103,33934,33767,33602,33438,33276,33115,32956,32798,32642,32487
        ,32334,32182,32032,31883,31735,31589,31444,31300,31158,31017,30877,30739,30602,30466,30331,30197,30065,29933
        ,29803,29674,29546,29420,29294,29169,29046,28923,28802,28681,28562,28443,28325,28209,28093,27979,27865,27752
        ,27640,27529,27419,27310,27201,27094,26987,26881
  };

}

void loop(void) {

              // read back a 4-byte
              long displayInt = (long) pgm_read_dword (&anArray[1]);
               Serial.println("---------------------------------");
               Serial.println(displayInt);


}


Gruß
Snoops

sth77

Dein Array existiert nur in der setup-Routine, nicht global.
Mein Arduino-Blog: http://www.sth77.de/ - letzter Eintrag: Diamex-ISP in der aktuellen Arduino-IDE 1.6.4

Snoops

Ahhh, alles kar!
Kaum macht mans richtig gehts auch...
:smiley-mr-green:

Go Up