RTC时钟问题
用实验箱9.62, 例程45, 运行OK, 搬到自己的LCD显示程序中,程序后半部分的delay_us(u16 us)会死机,用DEBUG跟踪到do...while(--us) 就跑飞了void delay_us(u16 us)
{
do
{
NOP(18); //(MAIN_Fosc + 500000) / 1000000 - 6
} while (--us);
}
是不是和堆栈有关,LCD显示有一幅静态图320240的有9600字节,显示图形时多处调用delay_us(u16 us),显示正常,
加入RTC初始化设置后就不能调用delay_us(u16 us),死机
请大佬指教
芯片是STC32G12K128 两者没有关系应该是别处引起。
哪个型号?打包发下完整工程
/周期性唤醒定时器设置
//中断使能, 0x80:闹钟中断, 0x40:日中断, 0x20:小时中断, 0x10:分钟中断, 0x08:秒中断, 0x04:1/2秒中断, 0x02:1/8秒中断, 0x01:1/32秒中断
//cnt:自动重装载值.减到0,产生中断.
void RTC_Set_WakeUp(u8 wksel,u8 cnt)
{ u8 temps;
RTCIF = 0x00; //清中断标志
RTCIEN = 0x88;
RTCCR = 0x01; //RTC使能
while(RTCCFG & 0x01); //等待初始化完成,需要在 "RTC使能" 之后判断.
}
这个设置不能加,加了再用delay_us()就死机 ercircle 发表于 2026-3-5 21:44
两者没有关系应该是别处引起。
哪个型号?打包发下完整工程
打包文件再附件里
ercircle 发表于 2026-3-5 21:44
两者没有关系应该是别处引起。
哪个型号?打包发下完整工程
芯片STC32G12K128 说一不二 发表于 2026-3-6 22:02
芯片STC32G12K128
没用RTC本身的中断。借用13 user中断,但是未添加asm跳转
查看手册这个章节了解更多内容:
ercircle 发表于 2026-3-7 15:16
没用RTC本身的中断。借用13 user中断,但是未添加asm跳转
我查了手册,STC32G12K28芯片在手册中没给中断入口号 ercircle 发表于 2026-3-7 15:16
没用RTC本身的中断。借用13 user中断,但是未添加asm跳转
是这个吗:
CSEGAT 0123H
JMP 006BH
END 说一不二 发表于 2026-3-7 16:27
是这个吗:
CSEGAT 0123H
JMP 006BH
页:
[1]
2