這是30年以來我上次做:-)
的EPROM無論如何,你需要兩件事情...
第一部分
首先,你的文件是PNG格式,其意味着它們具有日期,時間,調色板,伽瑪塊和一堆壓縮數據,您不能將其複製到屏幕緩衝區。因此,您需要將PNG轉換爲簡單的二進制格式,其中0關閉,1打開,文件中沒有任何其他內容。最簡單的方法是使用ImageMagick,它安裝在大多數Linux平臺上,並可在macOS和Windows上免費使用。比方說,你的幀中的一個被稱爲anim.png
,我們希望它得到一個簡單的格式,如PGM
(便攜式灰度圖 - 見Wikipedia description),我們可以在控制檯使用ImageMagick的這樣的:
convert anim.png -compress none anim.pgm
第一幾行會:
P2
128 64
255
255 255 255 255 255 255 255 ...
...
...
因爲圖像是128×64,並在文件中的最大亮度爲255,則所有的數據在ASCII如下(因爲我把-compress none
)。在那裏,255代表白色,0代表黑色。
由於這是太大的屏幕,這是它的外觀形象 - 希望你可以看到你的黑盒子的底部中間一串零的:
現在,如果再次運行相同的命令,但刪除-compress none
,則會生成相同的頭文件,但數據將以二進制形式出現。
convert anim.png anim.pgm
而且我們還可以使用sed
刪除3行頭的:
convert anim.png anim.pgm | sed '1,3d' > anim.bin
現在你有隻是純粹像素的二進制文件,它是免費的日期/時間,作者和版權,調色板和壓縮數據,你可以傳給下一部分。
第2部分
其次,一旦你在一個合理的二進制格式有你的數據,你需要將其轉換爲Intel Hex,爲此,你需要srec_cat
其中每日通過自制軟件支持Linux在Mac上的。
然後,我沒有測試過這一點,從來沒有使用過它,我想你會想是這樣的:
srec_cat anim.bin -binary -output -intel
:020000040000FA
:20000000323535203235352032353520323535203235352032353520323535203235352000
:200020003235352032353520323535203235352032353520323535203235352032353520E0
:200040003235352032353520323535203235352032353520323535203235352032353520C0
:200060003235352032353520323535203235352032353520323535203235352032353520A0
:20008000323535203235352032353520323535203235352032353520323535203235352080
...
:207E8000353520323535203235352032353520323535203235352032353520323535203202
:207EA0003535203235352032353520323535203235352032353520323535203235352032E2
:147EC000353520323535203235352032353520323535200A2A
:00000001FF
摘要
可以縮寫和簡化什麼,我上面提示 - 我會離開它,所以人們可以在將來了解它!
convert YourImage.png gray: | srec_cat - -binary -output -intel
的gray:
是一個非常簡單的ImageMagick 等同格式只是一個PGM文件的二進制部分沒有任何報頭。像PGM
它使用每像素一個字節,因此對於純黑色和白色的需求,它會有點低效。通過查看文件大小可以看出,PGM文件是8192字節,因此每像素1字節。如果你真的想每像素1位,你可以使用PBM
格式是這樣的:
convert YourImage.png pbm: | sed '1,3d' | srec_cat - -binary -output -intel
注:
從V7 ImageMagick的起的,你應該magick
取代convert
所以以避免與Windows內置的convert
命令衝突,該命令將文件系統轉換爲NTFS。
ImageMagick的是一個相當大的包,你可以只用的NetPBM套房做到這一點同樣好,用到位convert
稱爲pngtopnm
工具。
他們是否只有黑白圖像?這應該是一個微不足道的轉換 - 將黑色位設置爲1,將白色位設置爲0.我不確定您找到的軟件有什麼問題。 (另外,我不確定世界上「intel hex」是什麼。英特爾的十六進制格式與其他人不同的是什麼?據我所知,它不是。) –
@CodyGray這是一個[命名格式不正確] (https://en.wikipedia.org/wiki/Intel_HEX)直到現在我從未聽說過:)對於OP:你到底在問什麼?用於將圖像轉換爲Intel HEX的工具?恐怕這是題外話題。你有沒有想過使用精靈?或只是刻錄一個原始二進制文件 –
沒有錯誤地命名爲intel hex和motorola srecord,如果你現在只聽說過它,那麼無論你是微控制器新手還是格式比你年長。eeprom程序員從eeprom出來之前或實際上可能以前一直在使用其中一種或另一種文件格式,在flash出現之前需要使用相同的格式來編程mcus,然後在將它們插入編程器之前將它們插入板中。 –