0
在英飛凌C509中有一個名爲S1CON的寄存器,它是一個看起來像這樣的特殊功能寄存器。 在8位SFR(專用寄存器)上定義引腳
可以將S1CON上的位0定義爲RI1,以便它可以在主程序中訪問和參照。如果接收串行接口1的標誌中斷爲高電平或低電平,我想檢入我的主程序。它不是在頭文件中定義,但S1CON是
sfr S1CON = 0x9B;
謝謝
還是僅僅可能只是檢查對S1CON位0的狀態???
在英飛凌C509中有一個名爲S1CON的寄存器,它是一個看起來像這樣的特殊功能寄存器。 在8位SFR(專用寄存器)上定義引腳
可以將S1CON上的位0定義爲RI1,以便它可以在主程序中訪問和參照。如果接收串行接口1的標誌中斷爲高電平或低電平,我想檢入我的主程序。它不是在頭文件中定義,但S1CON是
sfr S1CON = 0x9B;
謝謝
還是僅僅可能只是檢查對S1CON位0的狀態???
您可以爲各個位定義掩碼(它們可能已在適當的頭文件中爲您定義),例如,
#define RI1 0x01 // RI1 = bit 0
#define TI1 0x02 // TI1 = bit 1
#define RB81 0x04 // RB81 = bit 2
...
,然後以測試RI1:
if (SC1CON & RI1)
...
要設置RI1:
SCICON |= RI1;
要清除RI1:
SCICON &= ~RI1;
的問題是,S1CON在限定= 0x50爲了設置UART1,所以這種方式很可能會影響該設置,不是嗎? – user1175889
不 - 您只是在讀取寄存器並測試位0 - 它不會修改寄存器內容。 –
哦,我看到所以如果我想,如果RI1等於'if((S1CON&RI1)== 1)'應該工作 – user1175889