不进入这个TKSU_ISR(void) interrupt 35, 用了扩展,之前加IRS.ASm也不行
8H4K64TL-LFQP48
void TKSU_ISR(void) interrupt 35
{
u8 j;
//011BH 触摸按键 中断入口//35
//用户中断处理代码
P47=1;
// TL3 TL3 的LED 点亮
P10=1; //TL2 TL2 的LED 点亮 fm=70;
P02=0;
P22=0;
j = TSSTA2;
if(j & 0x40) //数据溢出, 错误处理(略)
{
TSSTA2 |= 0x40; //写1清零
}
if(j & 0x80) //扫描完成
{
j &= 0x0f;//取当前完成的通道数
TSSTA2 |= 0x80; //写1清零
if(!B_TK_Lowpass) TK_cnt = TSDAT/4; //保存当前通道的读数 无低通滤波 4通道开始
else TK_cnt = ((TK_cnt * 3)>>2) + TSDAT/16; //保存当前通道的读数 低通滤波
if(j == 15) B_ReadKeyOk = 1; //读完一次循环
}
}
看看链接器用的是哪个,用了中断号扩展不能用LX51链接器 本帖最后由 hww22 于 2024-10-28 10:21 编辑
C51里面 就这些文件 本帖最后由 hww22 于 2024-10-28 10:36 编辑
TKSU_ISR,不是 011BH,是0715H,
但是 TIMER1 的函数,中断 对的。 CODE 001BH 就是 1BH
我用中断扩展正常,触摸按键中断程序:
https://www.stcaimcu.com/forum.php?mod=viewthread&tid=9925
void TKSU_Isr(void) interrupt TKSU_VECTOR
{
unsigned char temp;
temp=TSSTA2;
if(temp&0x40) //数据溢出, 错误处理
{
TSSTA2|=0x40; //写1清零
}
else if(temp&0x80) //扫描完成
{
TS_Scan=temp&0x0f;
if(TS_Map!=0xFF) //如果通道正确
{
TS_Buf]=TSDAT; //保存某个通道的读数
TS_Flag=1;
}
}
TSSTA2|=0x80; //写1清零
} TK0 TK1 TK2 , 我接了LED的 高电平, 是不是这个影响? TK0-2 没有使能的。。。
还是不调用函数。 下了别的版本也不行。 用 TTL 下载 就可以 触摸, 用USB-ISP 下载 不行。
页:
[1]