[英]How do I read uint32_t values out of a nested PROGMEM array?
我有一個 uint32_t 值的 16x16 矩陣數組: const uint32_t sprites[][16][16] PROGMEM = { ... };
我正在嘗試使用pgm_read_dword(sprites + (submode * 256 + row * 16 + column) * sizeof(uint32_t))
讀出值,但我轉身並對地址數學的工作方式感到困惑。 在這種情況下, submode
映射到矩陣索引。 submode
、 row
和column
都聲明為uint8_t
,以防萬一它有幫助。
如何正確計算pgm_read_dword
的地址?
pgm_read_dword
甚至是我想嘗試讀出uint32_t
值的方式嗎? 我立即將輸出傳遞給需要該類型的方法。
根據評論中的 datafiddler,它就像調用pgm_read_dword(&sprites[submode][row][column])
並讓編譯器處理偏移計算一樣簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.