2012-08-14 146 views
1

我在我的Arduino上有一個Web服務器,它應該呈現一個表格來保存一些數據到EEPROM。 HTML數據有大約1500個字符。此刻,我的代碼如下所示:在Arduino上存儲字符串的最佳方式是什麼?

[...] 
    serverClient.println("HTTP/1.1 200 OK"); 
    serverClient.println("Content-Type: text/html"); 
    serverClient.println("Connnection: close"); 
    serverClient.println(); 
    serverClient.println("<!DOCTYPE html>"); 
[...] 

PROGMEM讀到存儲數據使用F關鍵字,如:

[...] 
    serverClient.println(F("HTTP/1.1 200 OK")); 
    serverClient.println(F("Content-Type: text/html")); 
    serverClient.println(F("Connnection: close")); 
    serverClient.println(); 
    serverClient.println(F("<!DOCTYPE html>")); 
[...] 

但是,這需要更多的閃存。

使用第二種方法有什麼好處嗎?還是有更好的解決方案?

(我不能使用SD card來存儲數據。)

回答

3

它的閃存使用和RAM使用量之間的權衡,並且還有比這些微控制器RAM多了很多閃光。

我通常不會打擾在閃存中存儲字符串,除非我的Arduino草圖用完RAM。不幸的是,要判斷一個草圖是否需要比可用內存更多的內存並不容易 - 沒有編譯警告,事情就不會起作用,否則會出現奇怪的行爲。在這種情況下,我會發現一些可以暫時縮短的數組,然後再次編寫草圖。如果事情表現得更好,我知道我的內存不足,所以我會去尋找我可以使用的內存,或者考慮使用更少的內存來編寫程序的另一種方式。

相關問題