FwLib_STC8
FwLib_STC8 copied to clipboard
Keil环境下RTC demo编译问题
在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
Thank you for the bug report, I will add this fix.