我有一個Arduino或Teensy的項目,我需要從一個SD卡的二進制文件「字節」buf=file.read()
不斷讀取字節,並通過端口操作進行輸出(PORTD = buf
,...或PORTD = file.read()
循環)在一些穩定的頻率。微控制器SD卡
我讀過,因爲SD卡的延遲,file.read()
命令不會每次同時執行,所以輸出頻率不穩定。當我以一個循環讀取文件直到結束並打開文件時,是否發生這種延遲?
如果是這樣,另一種解決方案是從SD卡讀取每個512字節,並藉助struct 將它們存儲到buf陣列中。現在的問題是,每當我讀取512個字節時,我必須等待那些來自SD卡讀取延遲。是否有可能創建兩個512字節的緩衝區陣列 - >填充第一個 - >開始端口操作,使用頻率爲10或20 Khz或更高的定時器中斷內的第一個陣列,所以輸出始終具有穩定的頻率而在另一個循環中,我嘗試填充另一個數組?我的意思是有可能中斷沒有問題的「file.read(buf, size of(512))
」命令嗎?
如果是這樣,我該如何處理平滑的數據速率和穩定的頻率?
我相信單片機音頻播放器也會出現同樣的問題。他們從SD卡播放wav文件。請幫幫我。提前致謝!
您沒有提及您使用的是哪個確切的部分,因此沒有人知道可用於執行您的任務的功能(例如SRAM,中斷,I/O)。單獨的Arduino系列涵蓋了很多功能。拿出數據表並且具體,請,或者沒有人能幫助。 – TomServo