char buffer[33];
unsigned int rush = 9876;
sprintf(buffer,"%u",rush);
在sdcc中實現此代碼。但是,通過使用sprintf函數,我得到ASlink錯誤:無法在區域DSEG的內部RAM中獲得127個連續字節。- 對於區域DSEG,不能在內部RAM中獲得連續字節
任何人都可以請幫助糾正這一點。
我需要將整數值轉換爲字符串以在液晶顯示器上顯示它。
char buffer[33];
unsigned int rush = 9876;
sprintf(buffer,"%u",rush);
在sdcc中實現此代碼。但是,通過使用sprintf函數,我得到ASlink錯誤:無法在區域DSEG的內部RAM中獲得127個連續字節。- 對於區域DSEG,不能在內部RAM中獲得連續字節
任何人都可以請幫助糾正這一點。
我需要將整數值轉換爲字符串以在液晶顯示器上顯示它。
不要使用sprintf() - 您的控制器有足夠的RAM來運行烤箱烤箱,就是這樣。
如果您需要在LCD上輸出int/longint,請使用printf/putchar或某個專用循環(NOT RECURSION - 您沒有堆棧),它會生成整數的字符串表示形式char-by-char並將其發送到char-by-char顯示,這樣就避免了你無法承受的RAM緩衝區。
市面上仍有很多8051型號,有些型號的內存綽綽有餘(X)。 –
很可能你用完了數據存儲器。 – LPs
你不應該需要一個33字節的陣列烤箱烤箱。 –
哈哈,剛注意到'8051'的標籤。我絕對不會猜到...... :) –