[問題] 關於SPI的Register

看板Electronics作者 (ICK)時間15年前 (2010/12/02 21:48), 編輯推噓2(203)
留言5則, 2人參與, 最新討論串1/1
各位先進好 我想請問這個function的運作 這個是SPI的reset void spi_module_reset(void) { BIU *regBiuPtr = (BIU *) BIU_BASE; BYTE tmp; // Reset SPI regBiuPtr->BiuArst |= ARST_SPI; regBiuPtr->BiuArst &= ~ARST_SPI; for (tmp = 0; tmp < 0x10; tmp++); regBiuPtr->BiuArst |= ARST_SPI; } #define ARST_SPI 0X00040000 #define BIU_BASE (REGISTER_BASE + 0x00008000) typedef struct{ volatile DWORD BiuArst; // 0x00 volatile DWORD BiuSrst; // 0x04 volatile DWORD BiuChid; // 0x08 volatile DWORD BIU_STRAP_CFG; // 0x0c } BIU; 這是一個SPI的reset function 我想請問, 如果最後,regBiuPtr->BiuArst為0X00040000時,這代表在SPI的reset的Register為 0X00040000,使得SPI被reset嗎? 但我在SPEC裡郤找不到SPE的reset的Register.. = = 謝謝大家看完.. <(_ _)> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.4.173

12/03 18:02, , 1F
看起來是BiuArst的bit16為1時會reset
12/03 18:02, 1F

12/03 18:04, , 2F
說錯了,是bit18
12/03 18:04, 2F

12/03 18:06, , 3F
動作是bit16先設1,再設0,再連續設16次1...
12/03 18:06, 3F

12/03 18:07, , 4F
bit18 (打錯一次again= =)
12/03 18:07, 4F

12/05 10:11, , 5F
看起來你要找得不是 reset 的 register, 而是 reset 的bit
12/05 10:11, 5F
文章代碼(AID): #1CzwEt_K (Electronics)