找回密码
 立即注册
查看: 1127|回复: 5

同时使用 RTC, 和触摸,怎么写汇编跳转中断

[复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:581
  • 最近打卡:2026-04-22 13:09:19

10

主题

129

回帖

1055

积分

金牌会员

积分
1055
发表于 2024-6-19 20:29:34 | 显示全部楼层 |阅读模式
两个都超31了,不懂汇编啊。

35  001BH  触摸

36  0123H  RTC
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:453
  • 最近打卡:2026-07-03 08:57:36

830

主题

1万

回帖

2万

积分

管理员

积分
23929
发表于 2024-6-19 23:27:00 | 显示全部楼层
回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:881
  • 最近打卡:2026-07-05 00:09:36
已绑定手机

34

主题

390

回帖

3789

积分

论坛元老

机长

积分
3789
发表于 2024-6-21 12:39:11 | 显示全部楼层
本帖最后由 hsrzq 于 2024-6-22 00:24 编辑
  1. CSEG AT 011BH
  2. ljmp TouchIsr
复制代码

其中TouchIsr和RtcIsr就是c文件中一个普通的函数(不用加Interrupt),但当中断函数用
业余撸代码,专业开飞机 https://gitee.com/STC-MCU
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:581
  • 最近打卡:2026-04-22 13:09:19

10

主题

129

回帖

1055

积分

金牌会员

积分
1055
发表于 2024-6-21 19:01:57 | 显示全部楼层
本帖最后由 NTC 于 2024-6-21 19:03 编辑

20240621185506.png

汇编代码不行。
然后打了扩展补丁。

20240621185739.png

打了中断号扩展,
C51. 9.56 通过编译
C51 9.57 不行,*** ERROR L214: INPUT PHASE ERROR
C51. 9.96.7 也不行。
看这个提示信息,和中断也无关,但是同样的代码,9.56 就能通过呢。


回复

使用道具 举报 送花

  • 打卡等级:以坛为家III
  • 打卡总天数:940
  • 最近打卡:2026-07-05 21:57:45

14

主题

1389

回帖

7590

积分

论坛元老

积分
7590
发表于 2024-6-21 19:15:16 | 显示全部楼层
我是用这样。

;isr.asm
        CSEG        AT        011BH                ;35号 触摸按键 中断入口
        LJMP        006BH                        ;跳转到中断号13的向量
        
        CSEG    AT  0123H           ;36号 RTC_VECTOR
    LJMP     006BH
        END



//========================================================================
void TKSU_Interrupt(void) interrupt 13
{
        u8        j;
//    u8 intf=P0INTF;
        j = TSSTA2;
        if(j & 0x40)        //数据溢出, 错误处理(略)
        {
                TSSTA2 |= 0x40;        //写1清零
        }
        if(j & 0x80)        //扫描完成
        {
                j &= 0x0f;
                TSSTA2 |= 0x80;        //写1清零
                TK_cnt[j] = TSDAT;        //保存某个通道的读数
                if( j==5 )
                        B_ReadKeyOk=1;
        }
   
//    if( intf )
//    {
//        P0INTF=0;
//    }   
                if(RTCIF & 0x80)    //闹钟中断
        {
                P01 = !P01;
                RTCIF &= ~0x80;
                B_Alarm = 1;
        }

        if(RTCIF & 0x08)    //秒中断
        {
                P00 = !P00;
                RTCIF &= ~0x08;
                B_1s = 1;
        }
}

回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:581
  • 最近打卡:2026-04-22 13:09:19

10

主题

129

回帖

1055

积分

金牌会员

积分
1055
发表于 2024-6-21 21:07:37 | 显示全部楼层
本帖最后由 NTC 于 2024-6-22 20:55 编辑

楼上代码编译通过,, 我再测试一下功能。

正确
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-7-6 01:42 , Processed in 0.072367 second(s), 68 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表