找回密码
 立即注册
查看: 508|回复: 1

STC8H4K64TL的RTC和触摸同时开启32.768K晶振波形不对

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2024-04-20 10:39:40

2

主题

1

回帖

124

积分

注册会员

积分
124
发表于 2023-12-25 10:22:48 | 显示全部楼层 |阅读模式
STC8H4K64TL需要RTC和触摸同时开启,下图是同时开启RTC和触摸的 发现32.768K晶振输出的波形有个70Hz的尖峰脉冲,导致波形的频率不是32.768K,使得RTC走时不精确,实测600分钟慢了6分钟左右

截图202312251003184940.jpg

下图是开启RTC、不开启触摸,此时波形就很正常,晶振输出的频率就很准 32.768K

截图202312251017404102.jpg

不知道为什么会这样,起振电容为12PF(10-20PF都试了)触摸的参考电容为47PF
下面是我触摸的初始化程序

void TSU_Init()
{
    P_SW2 |= 0x80;          //允许访问XSF
    TSRT = 0x00;            //没有LED分时扫描
    TSCHEN1 = 0x00;         //使能TK07~TK00
    TSCHEN2 = 0xF0;         //使能TK15~TK08
    TSCFG1  = (7<<4) + 7;   //开关电容工作频率 = fosc/(2*(TSCFG1[6:4]+1)), 放电时间(系统时钟周期数) 0(125) 1(250) 2(500) 3(1000) 4(2000) 5(2500) 6(5000) 7(7500) 最小3
    TSCFG2  = 7;            //配置触摸按键控制器的内部参考电压(AVCC的分压比), 0(1/4)  1(1/2)  2(5/8)  3(3/4)
    TSCTRL  = 0x90;
    IE2 |= 0x80;            //使能触摸中断
}

下面是我RTC的初始化和设置程序


void RTC_Init()//RTC初始化函数
{
    P_SW2 |= 0x80;//SFR enable   
    P1M0=0x00;
    P1M1=0x00+1<<7+1<<6;//P1.6 P1.7设置为高阻输入
    P1IE = ~0xC0;//P1.6 P1.7关闭数字输入功能
    X32KCR = 0x80 + 0x40;//启动外部32K晶振, 低增益+0x00, 高增益+0x40.
    while(!(X32KCR&0x01));//等待外部晶振稳定
    RTCIEN  = 0x08|0x04; //中断使能, 0x80:闹钟中断, 0x40:日中断, 0x20:小时中断, 0x10:分钟中断, 0x08:秒中断, 0x04:1/2秒中断, 0x02:1/8秒中断, 0x01:1/32秒中断
    RTCIF   = 0x00;    //中断标志, 0x80:闹钟中断, 0x40:日中
}


void RTC_Set(int year,char month,char day,char hour,char minute,char second)//设置RTC时间函数
{
    RTCCR = 0x01;//使能RTC, 并开始RTC计数
    if(year>2099)   year=2099;
    if(month==0)    month=1;
    if(month>12)    month=12;
    if(day==0)      day=1;
    if(day>31)      day=31;
    if(hour>23)     hour=23;
    if(minute>59)   minute=59;
    if(second>59)   second=59;
    INIYEAR  = year-2000;
    INIMONTH = month;
    INIDAY   = day;
    INIHOUR  = hour;
    INIMIN   = minute;
    INISEC   = second;
    INISSEC  = 0;
    RTCCFG = 0x01 | 0x00;//设置RTC时间, |0x00:选择外部32K时钟, |0x02:选择内部32K时钟.  
    while(RTCCFG & 0x01);//等待初始化完成. 设置RTC时间需要32768Hz的1个周期时间,大约30.5us. 由于同步, 所以实际等待时间是0~30.5us.
                          //如果不等待设置完成就睡眠, 则RTC会由于设置没完成, 停止计数, 唤醒后才继续完成设置并继续计数.
}



如果各位大佬有遇到类似的情况,欢迎指导 谢谢!!!!



回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2025-03-10 00:48:12
已绑定手机

1

主题

7

回帖

35

积分

新手上路

积分
35
发表于 2025-2-19 13:11:19 来自手机 | 显示全部楼层
楼主,你这个触摸按键用的是哪一个中断口?是13还是35?我这个触摸按键还用不了,我用的是stc 1k08t这颗芯片,不知道怎么回事,你教教我呗
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 02:43 , Processed in 0.124155 second(s), 57 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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