TOP

在使用SN8P2308的RFC功能時,爲何讀取T1C的值出錯?

TC1是一個16bit計數器,在讀取T1C的值時,必須先讀取T1CH,後讀取T1CL,否則讀出數據會出錯。正確的操作如下麵程序所示:

B0MOV A,T1CH ;若T1C的值爲55AAH
B0MOV TEMP1,A

B0MOV A,T1CL
B0MOV TEMP2,A ;則讀出結果爲TEMP1=55H TEMP2=AAH

另外,對T1C的寫入則剛好與讀取相反,必須先寫入T1CL,後寫入T1CH,否則也會導致寫入資料出錯。正確的操作如下麵的程序所示:
MOV A, #0 ;將T1C清零
B0MOV T1CL, A
B0MOV T1CH, A

T1的相關操作請參考2308 datasheet中“計數寄存器 T1CH,T1CL”章節。