標題:
STC8H4K64TL單片機低功耗觸摸喚醒閾值寄存器TSTH11無法設(shè)置
[打印本頁]
作者:
littlespider
時間:
2022-9-16 12:48
標題:
STC8H4K64TL單片機低功耗觸摸喚醒閾值寄存器TSTH11無法設(shè)置
單片機型號STC8H4K64TL
TSTH11這個寄存器無法寫入任何值,試過一次賦值(TSTH11 = 0x1234),高低字節(jié)分別賦值(TSTH11H = 0x12;TSTH11L = 0x34)都不行,是不是有什么使能開關(guān)需要設(shè)置?數(shù)據(jù)手冊里貌似沒有提到。
奇怪的是只有TSTH11這個寄存器不能寫入,換另一片芯片還是這樣,TSTH00~TSTH10 以及 TSTH12~TSTH15 都可以。
有誰用過這個單片機的這個功能嗎?求解!
作者:
coody_sz
時間:
2022-9-16 17:51
這些是擴展的寄存器,訪問前要先設(shè)置 P_SW2 |= 0x80;
作者:
littlespider
時間:
2022-9-16 19:20
本帖最后由 littlespider 于 2022-9-17 07:36 編輯
coody_sz 發(fā)表于 2022-9-16 17:51
這些是擴展的寄存器,訪問前要先設(shè)置 P_SW2 |= 0x80;
這個設(shè)置了,跟它類似的寄存器TSTH00等都能寫入,就是單單TSTH11不得
for (i = 0; i < 16; ++i) {
TI = 0;
SBUF = tkey_thresholds[i] >> 8;
while(!TI);
TI = 0;
SBUF = tkey_thresholds[i];
while(!TI);
TI = 0;
th_start[i] = tkey_thresholds[i];
}
for (i = 0; i < 16; ++i) {
TI = 0;
SBUF = th_start[i] >> 8;
while(!TI);
TI = 0;
SBUF = th_start[i];
while(!TI);
TI = 0;
}
復制代碼
上面代碼運行打印結(jié)果:
26 29 38 28 41 D8 4E 3F 31 A2 32 23 33 7F 21 5D 23 41 2C 91 23 53 2A 20 FF FF FF FF FF FF FF FF
26 29 38 28 41 D8 4E 3F 31 A2 32 23 33 7F 21 5D 23 41 2C 91 23 53 00 00 FF FF FF FF FF FF FF FF
作者:
wulin
時間:
2022-9-16 20:32
這個特殊功能寄存器位于擴展RAM區(qū)域,訪問這些寄存器,需先將P_SW2的BIT7設(shè)置為1,才可正常讀寫
沒有實際使用過這個功能,試試下面的兩種設(shè)置方法。打開STC8H.H頭文件可以看到擴展的寄存器。
#define TSTH11 (*(unsigned int volatile xdata *)0xfb66)
#define TSTH11H (*(unsigned char volatile xdata *)0xfb66)
#define TSTH11L (*(unsigned char volatile xdata *)0xfb67)
P_SW2 |= 0x80;//打開
TSTH11=0x1234;
P_SW2 &= 0x7f;//關(guān)閉
P_SW2 |= 0x80;//打開
TSTH11H=0x12;
TSTH11L=0x34;
P_SW2 &= 0x7f;//關(guān)閉
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1