FwLib_STC8 icon indicating copy to clipboard operation
FwLib_STC8 copied to clipboard

Keil环境下RTC demo编译问题

Open perseverance51 opened this issue 1 year ago • 1 comments

FwLib_STC8\FwLib_STC8\demo\rtcrtc_interrupt.c中定义的中断服务函数: INTERRUPT(RTC_Routine, EXTI_VectRTC) { .............. }

  • 📝目前Keil各个版本的C51和C251编译器均只支持32个中断号(0~31),后面的中断需要经过添加汇编调整指令跳转实现。

🛠调整方法:

  • 🌿将中断号指向13号中断:EXTI_VectUser INTERRUPT(RTC_Routine, EXTI_VectUser) { .............. }
  • 🌿在fw_exti.h头文件中修改限定宏 ` //#if (__CONF_MCU_TYPE == 1 ) #define EXTI_VectUser 13 //#endif

`

  • 🌿新建Isr.asm汇编文件,内容如下: ` CSEG AT 0123H ;36号RTC中断入口地址 LJMP 006BH ;借用 13 号006BH中断的入口地址

END

`

✨以上是对该demo工程的完善,已经在STC8H8K64U B版本单片机上验证。

  • 🌴Keil项目结构树: ` Project:RTC Target 1 ├ Source Group 1 + rtc_interrupt.c + fw_util.c + fw_uart.c + fw_sys.c + fw_tim.c - Isr.asm

`

  • 📌更多详细可以参考STC官方:https://www.stcai.com/newsinfo/4342776.html

perseverance51 avatar Mar 08 '23 08:03 perseverance51

Thank you for the bug report, I will add this fix.

IOsetting avatar Mar 08 '23 16:03 IOsetting