Robofun 機器人論壇

標題: [求助]如何使用UNO的Flash Memory[已解決] [打印本頁]

作者: joejoe2829    時間: 2014-11-20 09:51
標題: [求助]如何使用UNO的Flash Memory[已解決]
本帖最後由 joejoe2829 於 2014-12-8 15:38 編輯

因為資料量太多了,想要把資料寫到flash中再做一些分析後,再清掉資料
但,不知道如何將二維陣列的資料寫入falsh中
不知有那位高手知道?提供方法
謝謝

程式中如果將陣列再加大,就沒有辦法Compile了。
我需要的陣列大小需要到[16000][1]的
所以想用falsh的空間,不知道是否可行~

  1. #include <SPI.h>
  2. #include <SD.h>

  3. int analogPin, sensor, arrTourqe [500][1], i, j;
  4. unsigned long startTime, duration;
  5. void setup()
  6. {
  7.   Serial.begin(115200);
  8.   pinMode(10, OUTPUT);
  9. }

  10. void loop()
  11. {
  12.      Serial.println("Start");
  13.      delay (5000);
  14.        startTime = millis();
  15.        Serial.print("Start(ms):");
  16.        Serial.println(duration);
  17.        for (i = 0; i < 500; i++) {
  18.          for (analogPin = 0; analogPin < 2; analogPin++) {
  19.            arrTourqe [i][analogPin] = analogRead(analogPin);
  20.            }
  21.        }
  22.        duration = millis() - startTime;
  23.        Serial.print("Duration(ms): ");
  24.        Serial.println(duration);
  25.        Serial.println("END");
  26.        delay (200);
  27. }
複製代碼

作者: pizg    時間: 2014-11-20 10:05
本帖最後由 pizg 於 2014-11-20 10:13 編輯

回復 1# joejoe2829


   改成這樣:

int analogPin, sensor, i, j;
int arrTourqe[16000][1];

int analogPin, sensor, i, j;
uint8_t arrTourqe [16000][1];
作者: joejoe2829    時間: 2014-11-20 10:52
本帖最後由 joejoe2829 於 2014-11-20 11:01 編輯

回復 2# pizg

不好意思,我陣列開到16000時,如:arrTourqe[16000][1]在使用迴圈編譯就會出現問題了,所以我想用flash的方式是用uint16_t的方式宣告嗎?如果是還需要額外載入、安裝什麼Library嗎?
作者: pizg    時間: 2014-11-20 22:21
本帖最後由 pizg 於 2014-11-20 22:30 編輯

回復 3# joejoe2829


我用你的程式改成int analogPin, sensor, i, j;
int arrTourqe[16000][1];

int analogPin, sensor, i, j;
uint8_t arrTourqe [16000][1];
都沒有問題.

作者: joejoe2829    時間: 2014-12-2 16:10
回復 4# pizg

感謝大大的幫忙
後來,我要下載到uno時,沒有辦法下載,好像是記憶體容量不夠
陣列只能開到200才可正常的載入,超過就沒有辦法了,不管是flash memory還是sram
目前就放棄使用陣列的方式了

謝謝




歡迎光臨 Robofun 機器人論壇 (https://robofun.net/forum/) Powered by Discuz! X3.2