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

一个简单问题,竟然出错,反而没办法

[复制链接]
  • 打卡等级:常住居民III
  • 打卡总天数:197
  • 最近打卡:2025-07-31 10:13:35
已绑定手机

62

主题

44

回帖

396

积分

中级会员

积分
396
发表于 2025-7-14 16:31:26 | 显示全部楼层 |阅读模式
截图202507141629494302.jpg

实际结果 LED3 怎么也不亮,似乎RTC中断没有进入

回复

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:144
  • 最近打卡:2025-07-31 10:37:58

760

主题

1万

回帖

1万

积分

管理员

积分
18139
发表于 2025-7-14 16:39:02 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:513
  • 最近打卡:2025-07-31 08:58:47
已绑定手机

87

主题

5532

回帖

1万

积分

超级版主

DebugLab

积分
10123
发表于 2025-7-14 16:57:01 | 显示全部楼层
RTC初始化:
  1. P_SW2|=EAXFR;
  2. P1M1=0xC0;        P1M0=0x00;        //设置IO模式(晶振IO高阻)
  3. X32KCR=0x80;                        //启动外部32.768KHz晶振
  4. while(!(X32KCR&0x01));        //等待外部32.768KHz晶振稳定
  5. RTCCFG=0x00;                        //RTC选择外部32.768KHz时钟源
  6. INIYEAR                =25;        //初始化年
  7. INIMONTH        =1;                //初始化月
  8. INIDAY                =1;                //初始化日
  9. INIHOUR                =0;                //初始化时
  10. INIMIN                =0;                //初始化分
  11. INISEC                =0;                //初始化秒
  12. INISSEC                =0;                //初始化1/128秒
  13. INIWEEK                =3;                //初始化星期
  14. RTCCFG|=0x01;                //初始化RTC
  15. RTCIF=0x00;                //清除RTC中断标志
  16. RTCIEN=0x08;        //启用RTC秒中断
  17. RTCCR=0x01;                //打开RTC
  18. EA=1;                        //启用总中断
复制代码
RTC中断:
  1. void RTC_Isr(void) interrupt RTC_VECTOR
  2. {
  3. //        if(RTCIF&0x80)        //闹钟中断
  4. //        {
  5. //                RTCIF&=~0x80;
  6. //        }
  7. //        if(RTCIF&0x40)        //日中断
  8. //        {
  9. //                RTCIF&=~0x40;
  10. //        }
  11. //        if(RTCIF&0x20)        //时中断
  12. //        {
  13. //                RTCIF&=~0x20;
  14. //        }
  15. //        if(RTCIF&0x10)        //分中断
  16. //        {
  17. //                RTCIF&=~0x10;
  18. //        }
  19.         if(RTCIF&0x08)        //秒中断
  20.         {
  21.                 RTCIF&=~0x08;
  22.                 RTC_1s_Flag=1;
  23.         }
  24. //        if(RTCIF&0x04)        //1/2秒中断
  25. //        {
  26. //                RTCIF&=~0x04;
  27. //        }
  28. //        if(RTCIF&0x02)        //1/8秒中断
  29. //        {
  30. //                RTCIF&=~0x02;
  31. //        }
  32. //        if(RTCIF&0x01)        //1/32秒中断
  33. //        {
  34. //                RTCIF&=~0x01;
  35. //        }
  36. }
复制代码


DebugLab
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:501
  • 最近打卡:2025-08-01 01:53:57
已绑定手机

38

主题

2302

回帖

3018

积分

荣誉版主

积分
3018
发表于 2025-7-14 22:02:30 | 显示全部楼层
RTC的中断号超过了31,需要使用扩展插件处理一下


截图202507142301354583.jpg
深圳国芯人工智能有限公司-工具软件
睁开眼睛做场梦~~~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:197
  • 最近打卡:2025-07-31 10:13:35
已绑定手机

62

主题

44

回帖

396

积分

中级会员

积分
396
发表于 2025-7-16 08:37:35 | 显示全部楼层
已经解决了,谢谢各位!
都是对的,缺少一个
   EA = 1;     //打开总中断

点评

笑哭了,这个原因……  发表于 2025-7-16 22:32
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-8-1 02:02 , Processed in 0.118467 second(s), 71 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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